add some jsdoc for what's Keyboard and Layout variable are used for will be great