Added strategy and abstract factory.