Only use one factory method