What classes need to be offered to solve this problem?