menu components refactoring