diff --git a/modules/main.js b/modules/main.js
index 613c657..ff0aa85 100644
--- a/modules/main.js
+++ b/modules/main.js
@@ -21,7 +21,6 @@
 const express = require('express')
 const bodyParser = require('body-parser')
 const busboy = require('connect-busboy')
-const fs = require('fs')
 const app = express()
 
 const logger = require('../utils/logger.js')
@@ -30,8 +29,6 @@ const logger = require('../utils/logger.js')
 const stat = require('../utils/stat.js')
 stat.Load()
 
-const listedFiles = '../public/files'
-
 app.set('view engine', 'ejs')
 app.use(function (req, res, next) {
   res.on('finish', function () {
@@ -62,59 +59,6 @@ app.get('/', function (req, res) {
   res.end('henlo')
 })
 
-// -----------------------------------------------------------------------------------------------
-
-app.get('/stuff*', function (req, res) {
-  let curr = listedFiles + '/' + req.url.substring('/stuff/'.length, req.url.length).split('?')[0]
-  let relPath = curr.substring('./public/files'.length, curr.length)
-
-  if (relPath[relPath.length - 1] !== '/') { relPath += '/' }
-
-  let t = relPath.split('/')
-  let prevDir = ''
-  for (let i = 0; i < t.length - 2; i++) { prevDir += t[i] + '/' }
-
-  // curr = curr.replace(/\//g, "/");
-  // relPath = relPath.replace(/\//g, "/");
-
-  logger.LogReq(req)
-
-  if (fs.lstatSync(curr).isDirectory()) {
-    if (curr[curr.length - 1] !== '/') { curr += '/' }
-
-    let f = []
-
-    fs.readdirSync(curr).forEach((item) => {
-      if (item[0] !== '.') {
-        let res = { name: item }
-        let stats = fs.statSync(curr + '/' + item)
-
-        let fileSizeInBytes = stats['size']
-        res.size = Math.round(fileSizeInBytes / 1000000)
-
-        res.path = relPath
-        if (res.path[res.path.length - 1] !== '/') { res.path += '/' }
-        res.path += item
-
-        res.mtime = stats['mtime'].toLocaleString()
-
-        f.push(res)
-      }
-    })
-
-    res.render('folders', {
-      folders: f,
-      dirname: relPath,
-      prevDir
-    })
-  } else {
-    let fileStream = fs.createReadStream(curr)
-    fileStream.pipe(res)
-  }
-})
-
-// -----------------------------------------------------------------------------------------------
-
 app.get('*', function (req, res) {
   res.render('404')
   res.status(404)
diff --git a/modules/stuff.js b/modules/stuff.js
new file mode 100644
index 0000000..e2ef269
--- /dev/null
+++ b/modules/stuff.js
@@ -0,0 +1,124 @@
+/* ----------------------------------------------------------------------------
+
+ Question Server
+ GitLab: <https://gitlab.com/YourFriendlyNeighborhoodDealer/question-node-server>
+
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <https://www.gnu.org/licenses/>.
+
+ ------------------------------------------------------------------------- */
+
+const express = require('express')
+const bodyParser = require('body-parser')
+const busboy = require('connect-busboy')
+const fs = require('fs')
+const app = express()
+
+const logger = require('../utils/logger.js')
+// const utils = require('../utils/utils.js')
+// const actions = require('../utils/actions.js')
+const stat = require('../utils/stat.js')
+stat.Load()
+
+const listedFiles = '../public/files'
+
+app.set('view engine', 'ejs')
+app.use(function (req, res, next) {
+  res.on('finish', function () {
+    logger.LogReq(req, true, res.statusCode)
+    if (res.statusCode !== 404) { stat.LogStat(req.url) }
+  })
+  next()
+})
+app.use(express.static('public'))
+app.use(busboy({
+  limits: {
+    fileSize: 10000 * 1024 * 1024
+  }
+}))
+app.use(bodyParser.json())
+app.use(bodyParser.urlencoded({
+  limit: '5mb',
+  extended: true
+}))
+app.use(bodyParser.json({
+  limit: '5mb'
+}))
+
+// --------------------------------------------------------------
+
+app.get('/*', function (req, res) {
+  let curr = listedFiles + '/' + req.url.substring('/stuff/'.length, req.url.length).split('?')[0]
+  let relPath = curr.substring('./public/files'.length, curr.length)
+
+  if (relPath[relPath.length - 1] !== '/') { relPath += '/' }
+
+  let t = relPath.split('/')
+  let prevDir = ''
+  for (let i = 0; i < t.length - 2; i++) { prevDir += t[i] + '/' }
+
+  // curr = curr.replace(/\//g, "/");
+  // relPath = relPath.replace(/\//g, "/");
+
+  logger.LogReq(req)
+
+  if (fs.lstatSync(curr).isDirectory()) {
+    if (curr[curr.length - 1] !== '/') { curr += '/' }
+
+    let f = []
+
+    fs.readdirSync(curr).forEach((item) => {
+      if (item[0] !== '.') {
+        let res = { name: item }
+        let stats = fs.statSync(curr + '/' + item)
+
+        let fileSizeInBytes = stats['size']
+        res.size = Math.round(fileSizeInBytes / 1000000)
+
+        res.path = relPath
+        if (res.path[res.path.length - 1] !== '/') { res.path += '/' }
+        res.path += item
+
+        res.mtime = stats['mtime'].toLocaleString()
+
+        f.push(res)
+      }
+    })
+
+    res.render('folders', {
+      folders: f,
+      dirname: relPath,
+      prevDir
+    })
+  } else {
+    let fileStream = fs.createReadStream(curr)
+    fileStream.pipe(res)
+  }
+})
+
+// -----------------------------------------------------------------------------------------------
+
+app.get('*', function (req, res) {
+  res.render('404')
+  res.status(404)
+  // utils.AppendToFile(logger.GetDateString() + ": " + "404 GET", logFile);
+})
+
+app.post('*', function (req, res) {
+  res.status(404)
+  // utils.AppendToFile(logger.GetDateString() + ": " + "404 POST", logFile);
+})
+
+exports.app = app
+
+logger.Log('Main module started', logger.GetColor('yellow'))