 		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)
 

		changes = {}

		# Fetch
		basename = @get('basename')
		filename = @get('filename')
		fullPath = @get('fullPath')
		extensions = @get('extensions')
		relativePath = @get('relativePath')
		mtime = @get('mtime')
		date = @getMeta('date') or null

		# Filename
		if fullPath
			changes.filename = filename = pathUtil.basename(fullPath)
			changes.outFilename = filename

		# Basename, extensions, extension
		if filename

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

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

		# relativeDirPath, relativeBase
		if relativePath
