 
 exports.Builder = class Builder
   sourcePath: null
-  compilePath: null
+  tmpPath: null
   outputPath: null
+  compileDir: 'compiled'
+  srcHashDb: 'src-hash'
+  compileHashDb: 'compile-hash'
+  buildFileHashDb: 'build-file-hash'
+  copyFileHashDb: 'copy-file-hash'
   defaultVersion: 'development'
   compileConfigTree: {}
   postConfigTree: {}

fs = require 'fs'
path = require 'path'
XRegExp = require('xregexp').XRegExp
mkdirp = require 'mkdirp'
walkdir = require 'walkdir'

          else
            console.log "Copying #{f}..."
            fs.writeFileSync targetFile, fs.readFileSync(sourceFile)
          srcHashes[sourceFile] = srcHash
          @saveDatabase version, @srcHashDb, srcHashes
    # Prune orphaned files
    buildFileNames = []
    for bf in _.keys @files
      buildFileNames.push path.join(@getCompilePath(version), bf)
    walkdir.sync @getCompilePath(version), (f, stat) ->
      return if stat.isDirectory()
      if targets.indexOf(f) is -1 and buildFileNames.indexOf(f) is -1
        console.log "Removing orphaned file #{f}..."
