Add poll debug controller, tighten up events, refactor