revision 3

added subclasses