make constructor arguments truly optional