Added comments so that others can understand what the classes are for.