added super-constructor stuff