more implementation on propery change listeners