Added more design patterns for #40