keyboard now hooks into textfields (but only textfields) through either the contstructor, or a setter that is called when the focus of the textfields are changed