new type of constructor