Add some pattern usage
Extend on patterns
Fix typo
Add error decoration
Add ability to get courses
Spring clean
Basic outline of high level design
Complete observer pattern implementation