both props could be `final`