menu refactor