Renaming :event->:action, and factoring out handle-event