 		# Options
 		@PluginsArray = []
 		@PluginsObject = {}
+		@port = port  if port
+		@maxAge = maxAge  if maxAge
+		@server = server  if server
 		@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
+		
+		@initSkeletons =>
+			@skeletonsPath = path.normalize(skeletonsPath || @skeletonsPath)
+			@skeletonPath = util.prefixPathSync(
+				path.normalize(skeletonPath || @skeletonPath),
+				@skeletonsPath
+			)
+			@loadPlugins null, =>
+				logger.log 'info', 'Finished loading'
+				@loading = false
+	
+	
+	# Initialise the Skeletons
+	initSkeletons: (next) ->
+		child = exec 'git submodule init; git submodule update', {cwd: @corePath}, (err,stdout,stderr) =>
+		child.on 'exit', (code,signal) ->
+			next()
 
 	# Clean Models
 	cleanModels: (next) ->

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

	# Handle
	action: (action) ->
		switch action
			when 'skeleton', 'scaffold'
				@skeletonAction (err) ->

	generating: false
	loading: true
	generateTimeout: null
	actionTimeout: null
	server: null
	port: 9778

