complete classmethod