what does firepropertychange do
firePropertyChange Fires a property change event to listeners that have been registered to track updates of all properties or a property with the specified name.
No event is fired if the given event's old and new values are equal and non-null.