 		changes = {}
 
 		# Fetch
+		meta = @getMeta()
 		basename = @get('basename')
 		filename = @get('filename')
 		fullPath = @get('fullPath')
 		extensions = @get('extensions')
 		relativePath = @get('relativePath')
 		mtime = @get('mtime')
-		date = @getMeta('date') or null
+		date = meta.get('date') or null
+		name = meta.get('name') or null
+		slug = meta.get('slug') or null
+		url = meta.get('url') or null
+		extension = null
+		outExtension = null
+		relativeDirPath = null
+		relativeBase = null
+		outDirPath = null
+		contentType = null
+		fullDirPath = null
+		outFilename = null
+		outPath = null
+		relativeOutDirPath = null
+		relativeOutPath = null
 
 		# Filename
 		if fullPath
 			changes.filename = filename = pathUtil.basename(fullPath)
-			changes.outFilename = filename
+			changes.outFilename = outFilename = filename
 
 		# Basename, extensions, extension
 		if filename

			else
				extension = null
			changes.extension = extension
			changes.outExtension = extension

		# fullDirPath, contentType
		if fullPath
			changes.fullDirPath = fullDirPath = pathUtil.dirname(fullPath) or ''
			changes.contentType = contentType = mime.lookup(fullPath)
			changes.outContentType = contentType

		# relativeDirPath, relativeBase
		if relativePath

		if !date and mtime
			changes.date = date = mtime

		# Create the URL for the file
		if !url and relativePath
			escapedRelativePath = relativePath.replace(/[\\]/g, '/')
			url = "/#{escapedRelativePath}"
			@setUrl(url)

		# Create a slug for the file
		if !slug and relativeBase
			changes.slug = slug = balUtil.generateSlugSync(relativeBase)

		# Set name if it doesn't exist already
		if !name and filename
			changes.name = name = filename

		# Create the outPath if we have a output directory
		if @outDirPath and relativePath and relativeDirPath?
			changes.relativeOutDirPath = relativeOutDirPath = relativeDirPath  if  relativeDirPath?
			changes.relativeOutPath = relativeOutPath = relativePath
			changes.outPath = outPath = pathUtil.join(@outDirPath, relativePath)
			if outPath
				changes.outDirPath = outDirPath = pathUtil.dirname(outPath)

		# Apply
		@set(changes)

