Factory and builder