Add has_any_changes function