LF

- Refactored Clojure code to be DRYer and more modular
- Fixed unit tests now that Clojure behaves differently