better array hasMany handling behavior