This is the custom keyboard class which handles keyboard events