don't need mouse/key-chan, just provide event-chan