make type and grammar changes to support multiple generators