learning Patterns