ready for refactoring the ugly clojure coe