catches standard characters, needs to catch functional buttons (tab,caps,shift[l+r],delete/backspace,enter,arrows)