Allowing the factory to infer type