rewrite input system. KeyEvents -> Input