Factory Method pattern is added.