lots of fixes and refactoring
passing tests! hooray!
version dep bump