integrating firePropertyChange