constructors modified