added overloaded constructors