move protocols into separate header
text field subclass for first responder delegate
keyboard layout becomes a protocol (forces implementation of methods as much as that can be forced)
enums -> NS_ENUMs
documentation!