 	@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
 
 	###

	Configure list module method
	@example `marie dc-web remove module bower`
	###
	listConfig: =>
		App.getConfig @args[3], @args[5], (err, config) =>
			if err then utils.throwError err
			else
				if config.constructor == String then ui.notice config

	@param [String] api api to add
	@example `marie dc-web add api user`
	###
	addApi: (arg, api) =>
		# console.log arg
		# console.log api 
		# console.log key 
		# console.log opt
		App.addApi arg, api, (err, app) =>
			if err then utils.throwError err
			else
				@app = app
