Make the ctor private again and use the builder pattern.