research project converting design pattern implementations in java to clojure