This repo has shows how to implement various design patterns