added String extensions into module
replaced keypress by keydown to allow capture of non-printable keys
removed implementation-specific legacy calls