Implement Factory Method with Protocal