Should we checknotnull all these parameter or just relying on the fact that other constructors will do?