change virtual to override in derived class