abstract Patterns