added courses with filtering and cacheing