account for no courses, malformed data and server errors in the UI