new keyboard handling system