Decided to try my hand at racket, fundamentally the algorithm is the same and code structure is basically the same anyway. Just looks cleaner.