end of part ii
simple base class