Added KeyListener with event queue.

Some timing bugs need to be researched & fixed.