bug fix: has('menu')