starts refactoring towards a new clojure.core