added two new classes case and case_transition