partially implemented and tested basic input plugin, keyboard handler isn't quite right, though