recursive patterns
fixed merge conflicts