First version.
Merge https://github.com/dmolina/pattern-strategy