mark implicitly virtual functions virtual