made more clojure-y