make it `final` and avoid `final` modifiers on methods