structure and logic changes