refactor to avoid the multiple hasMany on the same domain issue