this took a long time and i'm very satisfied with it, so of course i had to include a version that curses it