progress on keyboard handling