A ClojureScript library handling states and events