added ideal grammar