simplifying KeyboardAgent