added if(self) to see if superclasses designated initializer succeeded