I've studied Design Patterns