Cleanup.
Don't set the state when updating the menu.

Use a MenuItemProxy class to manage the menu item state.