fix ObserverList.RemoveAt function so it can remove items in middle of array