Yeah, no idea what I'm doing, will return to this when I've got a better handle on clojure