               reloaded.
     */
     public func reloadTemplates() {
-        templateASTForTemplateID.removeAll()
+        templateASTCache.removeAll()
     }
     
     

        }
        return _lockedConfiguration!
    }
    private var templateASTForTemplateID: [TemplateID: TemplateAST]
    
    private class DictionaryDataSource: TemplateRepositoryDataSource {
        let templates: [String: String]

    
    func templateAST(named name: String, relativeToTemplateID templateID: TemplateID?, error: NSErrorPointer) -> TemplateAST? {
        if let templateID = dataSource?.templateIDForName(name, relativeToTemplateID: templateID) {
            if let templateAST = templateASTCache[templateID] {
                // Return cached AST
                return templateAST
            } else {
                var dataSourceError: NSError?
                if let templateString = dataSource?.templateStringForTemplateID(templateID, error: &dataSourceError) {
                    // Cache an empty AST for that name so that we support
                    // recursive partials.
                    let templateAST = TemplateAST()
                    templateASTCache[templateID] = templateAST
                    
                    if let compiledAST = self.templateAST(string: templateString, contentType: lockedConfiguration.contentType, templateID: templateID, error: error) {
                        // Success: update the empty AST
                        templateAST.updateFromTemplateAST(compiledAST)
                        return templateAST
                    } else {
                        // Failure: remove the empty AST
                        templateASTCache.removeValueForKey(templateID)
                        return nil
                    }
                } else {
