implemented CaseClass