refactored property change