Able to overload constructors based on factory interface