Fix virtual functions to allow correct subclass behavior