renamed char to key in many places, test userinterfaces implement
new userinterface class