refactored keyboardModule