Added design patterns.