expose the source of the factory making code so it can be reused