Classes to implement generic user interfaces.