Refactored Course Constraint Model