streamlined secondary constructors