new data model to handle course data
new architecture for getting course listing when offline
data model is now used all over the app