add clojurescript implementation