Reducing constr visibility to enforce to use factory methods