Add keyboard support
Refactoring
Refactoring
Improve example