Rethinking do_action(): Events as objects, hooks as class names | Hacker News Reader