Refactored the grammar a bit (stoked on how it's organized now)