Design patterns are some difficult to understand