Added arrayDidChange and arrayWillChange observers so that I can add only those nodes which are changes instead of reinitializing the whole tree