using more inheritance.  next step will be object oriented