refactor and a keyboard