 				value: getDirectiveRegExp('prepend')
 			appendRegexp:
 				value: getDirectiveRegExp('append')
+			Relative:
+				value: class extends CodeCat
+					constructor: (src) ->
+						sourceDir = Path.dirname(source)
+						relSrc = Path.join(sourceDir, src)
+						super(relSrc, options)
 
 	findConcats: (options, callback) ->
-		[{relative = false}, callback] = discernOptions(options, callback)
+		[options, callback] = discernOptions(options, callback)
 		{prepend, append} = concats = {prepend: [], append: []}
 		lineReader = Readline.createInterface
 			input: createReadStream(@source, encoding: @encoding)

		[options, callback] = discernOptions(options, callback)
		{recursive = true} = options
		ensureStream dest, defaultEncoding: @encoding, (stream, end) =>
			@findConcats relative: true, (concats) =>
				error = null
				concats = mapConcats(concats, (c) => new CodeCat(c, @options)) if recursive
				paths = [concats.prepend..., @source, concats.append...]
				joinFiles paths, @encoding, stream, options, -> callback?(error)

	getRelativePath: (file) ->
		sourceDir = Path.dirname(@source)
		Path.join(sourceDir, file)
			
	@Commenters =
		'': '//'

		Object.defineProperties this,
			source:
				value: source
			prefix:
				value: prefix
			encoding:
