diff --git a/docs/guide/controller.md b/docs/guide/controller.md
index 682d1f7..8e1227e 100644
--- a/docs/guide/controller.md
+++ b/docs/guide/controller.md
@@ -35,7 +35,29 @@ class SiteController extends Controller
 ```
 
 As you can see, typical controller contains actions that are public class methods named as `actionSomething`.
-The output of an action is what the method returns. The return value will be handled by the `response` application
+The output of an action is what the method returns, it could be rendered result or it can be instance of ```yii\web\Response```, for example:
+
+```php
+namespace app\controllers;
+
+use yii\web\Controller;
+use app\components\web\MyCustomResponse; #extended from yii\web\Response
+
+class SiteController extends Controller
+{
+	public function actionCustom()
+	{
+		/*
+		 * do your things here
+		 * since Response in extended from yii\base\Object, you can initialize its values by passing in 
+		 * __constructor() simple array.
+		 */
+		return new MyCustomResponse(['data' => $myCustomData]);
+	}
+}
+```
+
+The return value will be handled by the `response` application
 component which can convert the output to differnet formats such as JSON for example. The default behavior
 is to output the value unchanged though.