Optimizing the constructors