Added Grammar abstraction