add caching to the tokens, this will skip file reads and tokenization for all but the first parsing of a template