realized that base class function cannot call derived class function