refactors all protocols into one namespace; clojure.lang.protocols
starts refactoring towards a new clojure.core
moves more wrapper function into core