uses instance variables only for base class