better menu generation