automated management of constructor types