I have a business scenario which requires me to have a ArrayCollection (A) which contains list of some objects and each object inside internally conatins another ArrayCollection (B). Now when I register a event listener to ArrayCollection A, the same event is not getting registered to the ArrayCollection B. Some time in between I am adding or removing objects to ArrayCOllection A. Now my question is, does the ArrayCollection B holds the same reference if I over write the object in A or it will get a new reference? If it gets a new reference, how do I make sure it updates the values over same reference?