added new types of constructors