diff --git a/app.js b/app.js
index 31524b94b0e73ef170edc5ebe5959ac4b0d38c3b..5e6c58cfad9bdcaf6b13f1ddafda52d07f82e205 100644
--- a/app.js
+++ b/app.js
@@ -1,5 +1,9 @@
 const express = require('express');
 const app = express();
+const bodyParser = require('body-parser');
+
+app.use(bodyParser.urlencoded());
+app.use(bodyParser.json());
 
 app.use((req, res, next) => {
   res.error = [];
diff --git a/middleware/episode/deleteEpisode.js b/middleware/episode/deleteEpisode.js
index e9dabf3596c5de88ea1462a4d43f47d757b19176..cf38378595ccfc3e9eb1aa9879503612cbdee38e 100644
--- a/middleware/episode/deleteEpisode.js
+++ b/middleware/episode/deleteEpisode.js
@@ -1,8 +1,8 @@
 /**
- *
+ * Deletes an episode with the :episodeId id if exists
  *
 */
-module.exports = () => {
+module.exports = (objectRepository) => {
   return (req, res, next) => {
 
 
diff --git a/middleware/episode/getEpisode.js b/middleware/episode/getEpisode.js
index e9dabf3596c5de88ea1462a4d43f47d757b19176..6891a1d76c9b5383e155bf9e0e4b504aec3d1e93 100644
--- a/middleware/episode/getEpisode.js
+++ b/middleware/episode/getEpisode.js
@@ -1,8 +1,8 @@
 /**
- *
+ * Returns an episode with the :episodeId id and put it in res.tpl.episode
  *
 */
-module.exports = () => {
+module.exports = (objectRepository) => {
   return (req, res, next) => {
 
 
diff --git a/middleware/episode/getEpisodes.js b/middleware/episode/getEpisodes.js
index e9dabf3596c5de88ea1462a4d43f47d757b19176..19d56b6609e4bfac9084235aeaa226b766185714 100644
--- a/middleware/episode/getEpisodes.js
+++ b/middleware/episode/getEpisodes.js
@@ -1,8 +1,8 @@
 /**
- *
+ * Returns all the episodes for a given serie with :id and puts the list on res.tpl.episodes
  *
 */
-module.exports = () => {
+module.exports = (objectRepository) => {
   return (req, res, next) => {
 
 
diff --git a/middleware/episode/postEpisode.js b/middleware/episode/postEpisode.js
index e9dabf3596c5de88ea1462a4d43f47d757b19176..e7deb78cc1a66cbc4c4c289a360328fab03e702a 100644
--- a/middleware/episode/postEpisode.js
+++ b/middleware/episode/postEpisode.js
@@ -1,8 +1,8 @@
 /**
- *
+ * Creates a new episode for the serie with :id id with the data provided
  *
 */
-module.exports = () => {
+module.exports = (objectRepository) => {
   return (req, res, next) => {
 
 
diff --git a/middleware/episode/updateEpisode.js b/middleware/episode/updateEpisode.js
index e9dabf3596c5de88ea1462a4d43f47d757b19176..727e930f1c8763bb3e6e7d30834681046ecf34c2 100644
--- a/middleware/episode/updateEpisode.js
+++ b/middleware/episode/updateEpisode.js
@@ -1,8 +1,8 @@
 /**
- *
+ * Updates the episode with :episodeId id with the data provided
  *
 */
-module.exports = () => {
+module.exports = (objectRepository) => {
   return (req, res, next) => {
 
 
diff --git a/middleware/generic/render.js b/middleware/generic/render.js
index 44bddd29d5bfa1b4f6fd67a3c9d7ea4f0ff035a4..6939a470d314fca1925285a7bfb0f62416ffcf95 100644
--- a/middleware/generic/render.js
+++ b/middleware/generic/render.js
@@ -1,8 +1,8 @@
 /**
- *
+ * Using the template engine render the values into the template
  *
 */
-module.exports = (view) => {
+module.exports = (objectRepository, view) => {
   return (req, res) => {
     res.end(`Render: ${view}`);
   };
diff --git a/middleware/serie/deleteSerie.js b/middleware/serie/deleteSerie.js
index e9dabf3596c5de88ea1462a4d43f47d757b19176..a0e24ddeabd66815ee3b79c05d6fbf8cfe02b5c8 100644
--- a/middleware/serie/deleteSerie.js
+++ b/middleware/serie/deleteSerie.js
@@ -1,8 +1,8 @@
 /**
- *
+ * Deletes a serie with given :id if exists
  *
 */
-module.exports = () => {
+module.exports = (objectRepository) => {
   return (req, res, next) => {
 
 
diff --git a/middleware/serie/getSerie.js b/middleware/serie/getSerie.js
index e9dabf3596c5de88ea1462a4d43f47d757b19176..b0b0292db2df071e7c779cf969e9082d7ddf8cad 100644
--- a/middleware/serie/getSerie.js
+++ b/middleware/serie/getSerie.js
@@ -1,8 +1,8 @@
 /**
- *
+ * Returns the serie with :id id and put it in res.tpl.serie
  *
 */
-module.exports = () => {
+module.exports = (objectRepository) => {
   return (req, res, next) => {
 
 
diff --git a/middleware/serie/getSeries.js b/middleware/serie/getSeries.js
index c4666529d097e67593ed24d931ce3463079d9fc8..f3e43a7a0012b284f8901bfed339899ffb610c96 100644
--- a/middleware/serie/getSeries.js
+++ b/middleware/serie/getSeries.js
@@ -1,11 +1,11 @@
 /**
- *
+ * Returns all series in the database and puts the list on res.tpl.series
  *
 */
-module.exports = () => {
+module.exports = (objectRepository) => {
   return (req, res, next) => {
 
-    
+
     return next();
   };
 };
diff --git a/middleware/serie/postSerie.js b/middleware/serie/postSerie.js
index e9dabf3596c5de88ea1462a4d43f47d757b19176..a88938bc682fb67295138ea0909efe38a486fe66 100644
--- a/middleware/serie/postSerie.js
+++ b/middleware/serie/postSerie.js
@@ -1,8 +1,8 @@
 /**
- *
+ * Creates a new serie with the data provided
  *
 */
-module.exports = () => {
+module.exports = (objectRepository) => {
   return (req, res, next) => {
 
 
diff --git a/middleware/serie/updateSerie.js b/middleware/serie/updateSerie.js
index e9dabf3596c5de88ea1462a4d43f47d757b19176..ed9adb1022d5e4b6cc9e879077743fcd39312dce 100644
--- a/middleware/serie/updateSerie.js
+++ b/middleware/serie/updateSerie.js
@@ -1,8 +1,8 @@
 /**
- *
+ * Updates the serie with :id id with the data provided
  *
 */
-module.exports = () => {
+module.exports = (objectRepository) => {
   return (req, res, next) => {
 
 
diff --git a/package.json b/package.json
index 211cca10b65a577d13a505c3709ee7d643a15249..bf33f154ac8a364147e09171777c3a6ac25e5abb 100644
--- a/package.json
+++ b/package.json
@@ -19,6 +19,7 @@
   },
   "homepage": "https://szakitom.github.io/node_homework/",
   "dependencies": {
+    "body-parser": "^1.18.2",
     "express": "^4.16.0"
   }
 }
diff --git a/routes/index.js b/routes/index.js
index 70f0ef80d7e4f98f7f06c1f913094395d1e8c3ea..0f84efc57707cf671286319c82a457616f9aaba4 100644
--- a/routes/index.js
+++ b/routes/index.js
@@ -11,64 +11,87 @@ const updateEpisodeMW = require('../middleware/episode/updateEpisode');
 const deleteEpisodeMW = require('../middleware/episode/deleteEpisode');
 
 module.exports = (app) => {
+  const objectRepository = {};
+
   app.get('/',
-    getSeriesMW(),
-    renderMW('series')
+    getSeriesMW(objectRepository),
+    renderMW(objectRepository, 'series')
   );
 
+  // SERIES
+
   app.get('/series/:id',
-    getSerieMW(),
-    getEpisodesMW(),
-    renderMW('serie')
+    getSerieMW(objectRepository),
+    getEpisodesMW(objectRepository),
+    renderMW(objectRepository, 'serie')
   );
 
   app.get('/series/:id/edit',
-    getSerieMW(),
-    renderMW('serieEdit')
+    getSerieMW(objectRepository),
+    renderMW(objectRepository, 'serieEdit')
   );
 
-  app.post('series',
-    postSerieMW()
+  app.post('/series',
+    postSerieMW(objectRepository),
+    (req, res, next) => (
+      res.redirect('/series');
+    )
   );
 
   app.put('/series/:id',
-    getSerieMW(),
-    updateSerieMW()
+    getSerieMW(objectRepository),
+    updateSerieMW(objectRepository),
+    (req, res, next) => (
+      res.redirect(`/series/${req.params.id}`);
+    )
   );
 
   app.delete('/series/:id',
-    getSerieMW(),
-    getEpisodesMW(),
-    deleteSerieMW(),
-    deleteEpisodeMW()
+    getSerieMW(objectRepository),
+    getEpisodesMW(objectRepository),
+    deleteSerieMW(objectRepository),
+    (req, res, next) => (
+      res.redirect('/series');
+    )
   );
 
+  // EPISODES
+
   app.get('/series/:id/episode/:episodeId',
-    getSerieMW(),
-    getEpisodeMW(),
-    renderMW('episode')
+    getSerieMW(objectRepository),
+    getEpisodeMW(objectRepository),
+    renderMW(objectRepository, 'episode')
   );
 
   app.get('/series/:id/episode/:episodeId/edit',
-    getSerieMW(),
-    getEpisodeMW(),
-    renderMW('episodeEdit')
+    getSerieMW(objectRepository),
+    getEpisodeMW(objectRepository),
+    renderMW(objectRepository, 'episodeEdit')
   );
 
   app.post('/series/:id',
-    getSerieMW(),
-    postEpisodeMW()
+    getSerieMW(objectRepository),
+    postEpisodeMW(objectRepository),
+    (req, res, next) => (
+      res.redirect(`/series/${req.params.id}`);
+    )
   );
 
   app.put('/series/:id/episode/:episodeId',
-    getSerieMW(),
-    getEpisodeMW(),
-    updateEpisodeMW()
+    getSerieMW(objectRepository),
+    getEpisodeMW(objectRepository),
+    updateEpisodeMW(objectRepository),
+    (req, res, next) => (
+      res.redirect(`/series/${req.params.id}/episode/${req.params.episodeId}`);
+    )
   );
 
   app.delete('/series/:id/episode/:episodeId',
-    getSerieMW(),
-    getEpisodeMW(),
-    deleteEpisodeMW()
+    getSerieMW(objectRepository),
+    getEpisodeMW(objectRepository),
+    deleteEpisodeMW(objectRepository),
+    (req, res, next) => (
+      res.redirect(`/series/${req.params.id}`);
+    )
   );
 }