added design patterns to be used for course and lesson builder