First 3 design patterns