Maybe we should allow each module to process its own input and just forward the key pressed along to it?