Optimizing hierarchical menus: A usage-based approach