 	@example `marie list dc-web`
 	@returns [Array<App>, App] apps return apps or app
 	###
-	list: =>
-		App.find @args[3], (err, apps) =>
-			if err then utils.throwError err
-			else
-				if not not @args[4] 
-					if @commands.list[@args[4]] then @commands.list[@args[4]]()
-					else ui.notice apps[@args[4]] 
+	list: (arg, key, opt) =>
+		App.find arg, (err, apps) =>
+			if err then utils.throwError err
+			else
+				if not not key
+					if key is 'api' then @listApis arg
+					else if key is 'module' then @listModules arg, opt
+					else if key is 'config' then @listConfig arg, opt
+					else ui.notice apps[key] 
 				else console.log apps
 
 	###

			'api':
				'add': @addApi
				'remove': @removeApi
			'db':
				'configure': @configure
			'list':
				'apis': @listApis
				'config': @listConfig
				'modules': @listModules
			'module':
				'add': @addModule
				'remove': @removeModule

	@param [String] pkg module to add
	@example `marie dc-web add module bower`
	###
	addModule: (arg, pkg, opt) =>
		# console.log arg
		# console.log pkg 
		# console.log opt
		ui.write "Adding `#{pkg}` module..."
		App.addModule arg, pkg, opt, (err, app) =>
			if err then utils.throwError err
			else
				@app = app
