Refactor. Moving to a StateT based design as opposed to a Free monadic one.