   loadViews()
   loadLocals()
 
+  requestHandler.destroy = ->
+    contentWatcher.close()
+    templateWatcher.close()
+    viewsWatcher?.close()
+
   return requestHandler
 
 run = (env, callback) ->

  contentWatcher.on 'add', -> loadContents() if not block.contentsLoad
  contentWatcher.on 'unlink', -> loadContents() if not block.contentsLoad

  templateWatcher = chokidar.watch env.templatesPath
  templateWatcher.on 'all', (event, path) ->
    loadTemplates() if not block.templatesLoad

  if env.config.views?
    viewsWatcher = chokidar.watch env.resolvePath env.config.views
    viewsWatcher.on 'all', (event, path) ->
      if not block.viewsLoad
        delete require.cache[path]

      block.localsLoad = false
      callback error

  contentWatcher = chokidar.watch env.contentsPath,
    ignoreInitial: true
  contentWatcher.on 'change', (path) ->
    return if not contents? or block.contentsLoad
    # ignore if we dont have the tree loaded or it's loading
