corrected constructors everywhere