abstracts menu logic