nit: could all be `final`.