dirty menu implementation, part 2