clojure.lang getting too big, splitting up functionality into separate namespaces for my own sanity