Added a notion of a Grammar