mark final classes as final
avoid unnecessary virtual inheritance for final classes
override specifiers for methods that override