try using arrayWillChange