factory before merge