initial work on new keyboard api
start of new keyboard api stuff