implement cljs version