 	# Plugins
 	PluginsArray: []
 	PluginsObject: {}
-	
-
-	# ---------------------------------
-	# Plugins
-
-	# Register a Plugin
-	# next(err)
-	registerPlugin: (plugin,next) ->
-		# Prepare
-		error = null
-
-		# Plugin Path
-		if typeof plugin is 'string'
-			try
-				pluginPath = plugin
-				plugin = require pluginPath
-				return @registerPlugin plugin, next
-			catch err
-				logger.log 'warn', 'Unable to load plugin', pluginPath
-				logger.log 'debug', err
-		
-		# Loaded Plugin
-		else if plugin and (plugin.name? or plugin::name?)
-			plugin = new plugin  if typeof plugin is 'function'
-			@PluginsObject[plugin.name] = plugin
-			@PluginsArray.push plugin
-			@PluginsArray.sort (a,b) -> a.priority < b.priority
-		
-		# Unknown Plugin Type
-		else
-			logger.log 'warn', 'Unknown plugin type', plugin
-		
-		# Forward
-		next error
-	
-	# Get a plugin by it's name
-	getPlugin: (pluginName) ->
-		@PluginsObject[pluginName]
-
-	# Trigger a plugin event
-	# next(err)
-	triggerEvent: (eventName,data,next) ->
-		# Async
-		tasks = new util.Group (err) ->
-			logger.log 'debug', "Plugins completed for #{eventName}"
-			next err
-		tasks.total = @PluginsArray.length
-
-		# Cycle
-		for plugin in @PluginsArray
-			data.docpad = @
-			data.logger = logger
-			data.util = util
-			plugin[eventName].apply plugin, [data,tasks.completer()]
-
-	# Load Plugins
-	loadPlugins: (pluginsPath, next) ->
-		unless pluginsPath
-			# Async
-			tasks = new util.Group (err) ->
-				logger.log 'debug', 'Plugins loaded'
-				next err
-			
-			tasks.push => @loadPlugins "#{__dirname}/plugins", tasks.completer()
-			if @rootPath isnt __dirname and path.existsSync "#{@rootPath}/plugins"
-				tasks.push => @loadPlugins "#{@rootPath}/plugins", tasks.completer()
-			
-			tasks.async()
-
-		else
-			util.scandir(
-				# Path
-				pluginsPath,
-
-				# File Action
-				(fileFullPath,fileRelativePath,nextFile) =>
-					@registerPlugin fileFullPath, nextFile
-				
-				# Dir Action
-				false,
-
-				# Next
-				(err) ->
-					logger.log 'debug', "Plugins loaded for #{pluginsPath}"
-					next err
-			)
+
 
 
 	# ---------------------------------

		# Options
		@PluginsArray = []
		@PluginsObject = {}
		@rootPath = path.normalize(rootPath || process.cwd())
		@outPath = path.normalize(outPath || "#{@rootPath}/#{@outPath}")
		@srcPath = path.normalize(srcPath || "#{@rootPath}/#{@srcPath}")
		@skeletonsPath = path.normalize(skeletonsPath || @skeletonsPath)
		@skeletonPath = path.normalize(skeletonPath || util.prefixPathSync(@skeletonPath, @skeletonsPath))
		@port = port  if port
		@maxAge = maxAge  if maxAge
		@server = server  if server
		logger = new caterpillar.Logger
			transports:
				level: logLevel or @logLevel
				formatter:
					module: module
		@loadPlugins null, =>
			logger.log 'info', 'Finished loading'
			@loading = false

	# Clean Models
	cleanModels: (next) ->

			Documents[@id] = @
		next()  if next


	# Handle
	action: (action) ->
		# Clear
		if @actionTimeout
			clearTimeout(@actionTimeout)
			@actionTimeout = null

		# Check
		if @loading
			logger.log 'notice', 'Action received, but we still loading... waiting...'
			@actionTimeout = setTimeout(
				=>
					@action action
				500
			)
			return
		
		# Handle
		switch action
			when 'skeleton', 'scaffold'
				@skeletonAction (err) ->
