this should be `private` instead of `final`