diff --git a/README.md b/README.md
index 37b91e3b..705875d9 100644
--- a/README.md
+++ b/README.md
@@ -65,6 +65,7 @@ Iris may have reached version 8, but we're not stopping there. We have many feat
 * [Dockerize](https://github.com/iris-contrib/cloud-native-go)
 * [Community & Support](#-community)
 * [Blogs](https://iris-go.com/v8/blogs)
+	- [Iris Go vs .NET Core Kestrel in terms of HTTP performance](https://hackernoon.com/iris-go-vs-net-core-kestrel-in-terms-of-http-performance-806195dc93d5)
 	- [Go vs .NET Core in terms of HTTP performance](https://medium.com/@kataras/go-vs-net-core-in-terms-of-http-performance-7535a61b67b8)
 	- [Iris, a modular web framework](https://medium.com/@corebreaker/iris-web-cd684b4685c7)
 	- [Deploying a Iris Golang app in hasura](https://docs.hasura.io/0.14/tutorials/deploying-a-go-iris-app.html)
@@ -84,33 +85,8 @@ $ go get -u github.com/kataras/iris
 
 > _iris_ takes advantage of the [vendor directory](https://docs.google.com/document/d/1Bz5-UB7g2uPBdOx-rw5t9MxJwkfpx90cqG9AFL0JAYo) feature. You get truly reproducible builds, as this method guards against upstream renames and deletes.
 
-```go
-// file: main.go
-package main
-import "github.com/kataras/iris"
-
-func main() {
-    app := iris.New()
-    // Load all templates from the "./templates" folder
-    // where extension is ".html" and parse them
-    // using the standard `html/template` package.
-    app.RegisterView(iris.HTML("./templates", ".html"))
-
-    // Method:    GET
-    // Resource:  http://localhost:8080
-    app.Get("/", func(ctx iris.Context) {
-        // Bind: {{.message}} with "Hello world!"
-        ctx.ViewData("message", "Hello world!")
-        // Render template file: ./templates/hello.html
-        ctx.View("hello.html")
-    })
-
-    // Start the server using a network address.
-    app.Run(iris.Addr(":8080"))
-}
-```
 ```html
-<!-- file: ./templates/hello.html -->
+<!-- file: ./views/hello.html -->
 <html>
 <head>
     <title>Hello Page</title>
@@ -121,6 +97,75 @@ func main() {
 </html>
 ```
 
+```go
+// file: main.go
+package main
+import "github.com/kataras/iris"
+
+func main() {
+    app := iris.New()
+    // Load all templates from the "./views" folder
+    // where extension is ".html" and parse them
+    // using the standard `html/template` package.
+    app.RegisterView(iris.HTML("./views", ".html"))
+
+    // Method:    GET
+    // Resource:  http://localhost:8080
+    app.Get("/", func(ctx iris.Context) {
+        // Bind: {{.message}} with "Hello world!"
+        ctx.ViewData("message", "Hello world!")
+        // Render template file: ./views/hello.html
+        ctx.View("hello.html")
+    })
+
+    // Method:    GET
+    // Resource:  http://localhost:8080/user/42
+    app.Get("/user/{id:long}", func(ctx iris.Context) {
+        userID, _ := ctx.Params().GetInt64("id")
+        ctx.Writef("User ID: %d", userID)
+    })
+
+    // Start the server using a network address.
+    app.Run(iris.Addr(":8080"))
+}
+```
+<details>
+<summary>Fan of the MVC Architectural Pattern? Click here</summary>
+
+```go
+package main
+
+import "github.com/kataras/iris"
+
+func main() {
+    app := iris.New()
+    app.RegisterView(iris.HTML("./views", ".html"))
+
+    app.Controller("/", new(Controller))
+
+    app.Run(iris.Addr(":8080"))
+}
+
+type Controller struct {
+    iris.Controller
+}
+
+// Method:    GET
+// Resource:  http://localhost:8080
+func (c *Controller) Get() {
+    c.Data["message"] = "Hello world!"
+    c.Tmpl = "hello.html"
+}
+
+// Method:    GET
+// Resource:  http://localhost:8080/user/42
+func (c *Controller) GetBy(id int64) {
+    c.Ctx.Writef("User ID: %d", id)
+}
+```
+
+</details>
+
 ```sh 
 $ go run main.go
 > Now listening on: http://localhost:8080
diff --git a/_examples/mvc/controller-with-model-and-view/main.go b/_examples/mvc/controller-with-model-and-view/main.go
index a1b89e78..61da2a35 100644
--- a/_examples/mvc/controller-with-model-and-view/main.go
+++ b/_examples/mvc/controller-with-model-and-view/main.go
@@ -4,7 +4,6 @@ import (
 	"sync"
 
 	"github.com/kataras/iris"
-	"github.com/kataras/iris/mvc"
 )
 
 func main() {
@@ -52,7 +51,7 @@ var myDB = &DB{
 // ProfileController our example user controller which controls
 // the paths of "/profile" "/profile/{id:int}" and "/profile/me".
 type ProfileController struct {
-	mvc.Controller // IMPORTANT
+	iris.Controller // IMPORTANT
 
 	User UserModel `iris:"model"`
 	// we will bind it but you can also tag it with`iris:"persistence"`
diff --git a/_examples/mvc/hello-world/main.go b/_examples/mvc/hello-world/main.go
index 58d17a0b..86ca97eb 100644
--- a/_examples/mvc/hello-world/main.go
+++ b/_examples/mvc/hello-world/main.go
@@ -2,7 +2,6 @@ package main
 
 import (
 	"github.com/kataras/iris"
-	"github.com/kataras/iris/mvc"
 
 	"github.com/kataras/iris/middleware/logger"
 	"github.com/kataras/iris/middleware/recover"
@@ -48,9 +47,8 @@ func main() {
 
 // IndexController serves the "/".
 type IndexController struct {
-	// if you build with go1.9 you can omit the import of mvc package
-	// and just use `iris.Controller` instead.
-	mvc.Controller
+	// if you build with go1.8 you have to use the mvc package, `mvc.Controller` instead.
+	iris.Controller
 }
 
 // Get serves
@@ -62,7 +60,7 @@ func (c *IndexController) Get() {
 
 // PingController serves the "/ping".
 type PingController struct {
-	mvc.Controller
+	iris.Controller
 }
 
 // Get serves
@@ -74,7 +72,7 @@ func (c *PingController) Get() {
 
 // HelloController serves the "/hello".
 type HelloController struct {
-	mvc.Controller
+	iris.Controller
 }
 
 type myJSONData struct {
diff --git a/_examples/mvc/login/user/auth.go b/_examples/mvc/login/user/auth.go
index ba7c0053..cda9d3dd 100644
--- a/_examples/mvc/login/user/auth.go
+++ b/_examples/mvc/login/user/auth.go
@@ -6,7 +6,6 @@ import (
 	"strings"
 
 	"github.com/kataras/iris"
-	"github.com/kataras/iris/mvc"
 )
 
 // paths
@@ -22,7 +21,7 @@ const (
 
 // AuthController is the user authentication controller, a custom shared controller.
 type AuthController struct {
-	mvc.SessionController
+	iris.SessionController
 
 	Source *DataSource
 	User   Model `iris:"model"`
diff --git a/_examples/mvc/session-controller/main.go b/_examples/mvc/session-controller/main.go
index 0e3e16d4..4a294353 100644
--- a/_examples/mvc/session-controller/main.go
+++ b/_examples/mvc/session-controller/main.go
@@ -4,15 +4,12 @@ import (
 	"time"
 
 	"github.com/kataras/iris"
-	"github.com/kataras/iris/mvc"
 
 	"github.com/kataras/iris/sessions"
 )
 
 type VisitController struct {
-	// if you build with go1.9 you can omit the import of mvc package
-	// and just use `iris.Controller` instead.
-	mvc.SessionController
+	iris.SessionController
 
 	StartTime time.Time
 }
diff --git a/context.go b/context.go
index 64cd0006..bec37e4c 100644
--- a/context.go
+++ b/context.go
@@ -122,4 +122,8 @@ type (
 	// the "github.com/kataras/iris/mvc"
 	// package for machines that have not installed go1.9 yet.
 	Controller = mvc.Controller
+	// SessionController is a simple `Controller` implementation
+	// which requires a binded session manager in order to give
+	// direct access to the current client's session via its `Session` field.
+	SessionController = mvc.SessionController
 )
diff --git a/doc.go b/doc.go
index fee4c586..d86fa52b 100644
--- a/doc.go
+++ b/doc.go
@@ -682,7 +682,6 @@ Example Code
 
     import (
         "github.com/kataras/iris"
-        "github.com/kataras/iris/mvc"
 
         "github.com/kataras/iris/middleware/logger"
         "github.com/kataras/iris/middleware/recover"
@@ -720,9 +719,8 @@ Example Code
 
     // IndexController serves the "/".
     type IndexController struct {
-        // if you build with go1.9 you can omit the import of mvc package
-        // and just use `iris.Controller` instead.
-        mvc.Controller
+        // if you build with go1.8 you have to use the mvc package, `mvc.Controller` instead.
+        iris.Controller
     }
 
     // Get serves
@@ -734,7 +732,7 @@ Example Code
 
     // PingController serves the "/ping".
     type PingController struct {
-        mvc.Controller
+        iris.Controller
     }
 
     // Get serves
@@ -746,7 +744,7 @@ Example Code
 
     // HelloController serves the "/hello".
     type HelloController struct {
-        mvc.Controller
+        iris.Controller
     }
 
     // Get serves
@@ -811,7 +809,7 @@ useful to call middlewares or when many methods use the same collection of data.
 
 Optional `EndRequest(ctx)` function to perform any finalization after any method executed.
 
-Inheritance, recursively, see for example our `mvc.SessionController`, it has the `mvc.Controller` as an embedded field
+Inheritance, recursively, see for example our `mvc.SessionController/iris.SessionController`, it has the `mvc.Controller/iris.Controller` as an embedded field
 and it adds its logic to its `BeginRequest`. Source file: https://github.com/kataras/iris/blob/master/mvc/session_controller.go.
 
 Read access to the current route  via the `Route` field.