Added meaningful names to grammar
Refactored unit tests, created a lot of new tests as well.