wrapping method in another function, cljs the macros more intelligently