Refactored all node methods out into their own files.
Now there is a nice separation between grammar definition and methods that
can be performed on a given rule!