invoke keyboard parser outside update() function