Changed so that course can be a subclass of dict