more examples of virtual functions