abstract menu