Added a generic superclass, and a label class.  Added inline documentation everywhere.