make new for constructor fn optional