added decorator patterns (exercise 5)