extensible constructors