changed to self.__class__.create