switched to clojure cons cell rather than my custom one