BTW, no need to make it `final`: it has `private` constructor