Added Patterns - TODO: to be rewritten (too complex, not intuitive)