Partial commit with factory method