added abstract menu class