added support for touch but need to do something about the lack of shift key on touch devices