added extra constructors