Add Factory Method pattern.