better solution for clojure 5