refactor and update menu