Fix domain object factories : share constructor logic