copying back much of constructor