This is Design Patterns for Self Learning