diff --git a/public/index.php b/public/index.php
index b14eceb95e995c2a1cad22102b593be205482639..3496c60564ce8bc1a8b88dba7abf2dfd339876cd 100644
--- a/public/index.php
+++ b/public/index.php
@@ -6,4 +6,5 @@
     require __DIR__.'/../src/app.php';
 
     $App = DagoJek::Instance();
+    $App->prepareRouting();
     $App->Start();
\ No newline at end of file
diff --git a/src/app.php b/src/app.php
index 62e26a9e7a274f85f716791bc6685baa29407aa9..0bdcc30d18bb88c5e01a038f8c1cc6da37eb56c8 100644
--- a/src/app.php
+++ b/src/app.php
@@ -1,7 +1,13 @@
 <?php
 
+
+/**
+ * DagoJek is a singleton class that representing DagoJek application
+ */
 class DagoJek {
 
+    private $routingTable = array();
+
     private function __construct() {
         // empty constructor
     }
@@ -26,6 +32,10 @@ class DagoJek {
         }
     }
 
+    public function prepareRouting() {
+        require __DIR__.'/route.php';
+    }
+
     private function getCurrentUri() {
         $basepath = implode('/', array_slice(explode('/', $_SERVER['SCRIPT_NAME']), 0, -1)) . '/';
         $uri = substr($_SERVER['REQUEST_URI'], strlen($basepath));
@@ -34,26 +44,20 @@ class DagoJek {
         return $uri;
     }
 
+    public function addRoute($route, $function) {
+        $data = array(
+            $route => $function,
+        );
+        $this->routingTable += $data;
+    }
+
     public function Start() {
         $base_url = $this->getCurrentUri();
-        switch ($base_url) {
-            case "/" :
-                echo "Login page";
-                break;
-            case "/login" :
-                MainController::LoginHandler();
-                break;
-            case "/register" :
-                echo "Register page";
-                break;
-            case "/profil" :
-                echo "Profil page";
-                break;
-            default :
-                echo "404 not found";
+        if (array_key_exists ($base_url, $this->routingTable)) {
+            $this->routingTable[$base_url]();
+        } else {
+            die ("404 Page not Found");
         }
     }
     
 }
-
-?>
\ No newline at end of file
diff --git a/src/controller/MainController.php b/src/controller/MainController.php
index 30991ff78f6f880c12a900eb512cc3da4812d820..c0fa8167c4d80d68f33d6ea3e1411852efec3e28 100644
--- a/src/controller/MainController.php
+++ b/src/controller/MainController.php
@@ -6,5 +6,8 @@ class MainController {
         echo "This is login handler";
     }
 
+    public static function DefaultHandler() {
+        echo "This is default handler";
+    }
 
 }
\ No newline at end of file
diff --git a/src/route.php b/src/route.php
new file mode 100644
index 0000000000000000000000000000000000000000..0b033a3664aaf90ff47110e1a6ed2f17ea3019e6
--- /dev/null
+++ b/src/route.php
@@ -0,0 +1,15 @@
+<?php
+
+// ---------------------------- LIST OF ALL BASIC ROUTES ----------------------------
+
+$AppInstance = Dagojek::Instance();
+
+$AppInstance->addRoute("/",                     'MainController::LoginHandler');
+$AppInstance->addRoute("/login",                'MainController::LoginHandler');
+$AppInstance->addRoute("/register",             'MainController::DefaultHandler');
+$AppInstance->addRoute("/main/profil",          'MainController::DefaultHandler');
+$AppInstance->addRoute("/main/profil/edit",     'MainController::DefaultHandler');
+$AppInstance->addRoute("/main/history",         'MainController::DefaultHandler');
+$AppInstance->addRoute("/main/order/",          'MainController::DefaultHandler');
+$AppInstance->addRoute("/main/order/select",    'MainController::DefaultHandler');
+$AppInstance->addRoute("/main/order/finish",    'MainController::DefaultHandler');