Process methods could be cleaner by using the '?' operator and returning an optional token. This will also made error handling with location easier.