Refactored to make more flexible

Using multiple constructors on Tokenizer to allow users to specify
their own tokens, added a test for this

Added a helper method for the parser to make it cleaner to read