deep chaining of event handlers in the monad instance
cleanup
demo
demo