keyboard: split the module to help manageability.

updated the documentation.