Added Strategy pattern, tests and example application