Initial attempt to do this in clojure, it of course doesn't work but
will soon