added a TODO
added better comments.
pulled the grammar into its own file