Strategy pattern is added.