hardware class and button mapping. see history for details.