implement OnPropertiesChanged meachanism