noting that the factory may contain builder methods for multiple contracts