use consistent argument order and variable names
continue to move toward consistent naming
add modifier keys
merge key lists
remove key page data structure
remove unnecessary decode function