solved with clojure