diff --git a/client/src/components/Movies.tsx b/client/src/components/Movies.tsx
index 84cf31938a74f0ed58a171a156066df351514f26..31db9129293e91ab7e569b7ecaad6e01f559659e 100644
--- a/client/src/components/Movies.tsx
+++ b/client/src/components/Movies.tsx
@@ -40,7 +40,7 @@ function Movies(props: MoviesProps){
         })
     }
 
-    // returns movies by given field
+    // returns movies by given field (Abbasj:This method became retired by other students in last week!)
     function getMovieByColumnType(columnType : services.ColumnType, value: string, neededData: string) {
         services.queryFetch(services.generateQuery(columnType, value, neededData))
         .then(res => res.json())
@@ -54,6 +54,7 @@ function Movies(props: MoviesProps){
             pageStart={0}
             loadMore={() => {
                 if (MoviesStore.hasMore){
+                    if(MoviesStore.movies.length )
                     getAllMovies({ lim: MoviesStore.movies.length + 13 })
                 }
             }}
diff --git a/server/package-lock.json b/server/package-lock.json
index b53a57b0a877a2cadfd9ad385aa54c9826b8e06b..20d32c75d3492dc4c5532d06fef69b220947845e 100644
--- a/server/package-lock.json
+++ b/server/package-lock.json
@@ -5528,6 +5528,11 @@
         "is-obj": "^2.0.0"
       }
     },
+    "dotenv": {
+      "version": "10.0.0",
+      "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz",
+      "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q=="
+    },
     "dotenv-expand": {
       "version": "5.1.0",
       "resolved": "https://registry.npmjs.org/dotenv-expand/-/dotenv-expand-5.1.0.tgz",
diff --git a/server/package.json b/server/package.json
index 4204a5cfbe3e6c691294afcf5003251e4c8ba351..5e2cb5495f5fdefe367e924c7556eec696a6ddfd 100644
--- a/server/package.json
+++ b/server/package.json
@@ -27,7 +27,7 @@
     "web-vitals": "^1.1.2"
   },
   "scripts": {
-    "start": "forever start src/server.js",
+    "start": "nodemon src/server_local.ts --exec ts-node",
     "build": "tsc src/server.ts",
     "test": "react-scripts test",
     "eject": "react-scripts eject"
@@ -53,4 +53,4 @@
   "devDependencies": {
     "@types/cors": "^2.8.12"
   }
-}
\ No newline at end of file
+}
diff --git a/server/src/database.ts b/server/src/database.ts
index b34bf45a8edf087016e326da43b95e452589d1ba..20ab60f7eec79f946e2f16d6e0735c42c96148b7 100644
--- a/server/src/database.ts
+++ b/server/src/database.ts
@@ -1,13 +1,28 @@
 import { createPool , Pool} from "mysql2/promise";
 
-export async function connect(): Promise<Pool>{
-  const connection = createPool({
-      host: "mysql.ansatt.ntnu.no",
-      user: 'abbasj_abbas',
-      password: 'abbas2021',
-      database: 'abbasj_project3',
-      connectionLimit: 10
-  })
-
-  return connection;
+var _connection = connect();
+
+
+ async function connect(): Promise<Pool>{
+
+   if(typeof(_connection) === "undefined"){
+
+      const connection = createPool({
+        host: "mysql.ansatt.ntnu.no",
+        user: 'abbasj_abbas',
+        password: 'abbas2021',
+        database: 'abbasj_project3',
+        connectionLimit: 20
+    })
+
+    return connection;
+   }
+
+   return _connection;
+
 }
+
+
+export async function sendQuery(query: string){
+  return (await _connection).query(query);
+}
\ No newline at end of file
diff --git a/server/src/server.ts b/server/src/server.ts
index ec2f974f9c15edbb3370c433b6ba0527134e19fe..e0c7836ad39ec2d90672c5b765927bb9148757e4 100644
--- a/server/src/server.ts
+++ b/server/src/server.ts
@@ -3,7 +3,7 @@ var express = require('express');
 var { graphqlHTTP } = require('express-graphql');
 var { GraphQLObjectType, GraphQLSchema, GraphQLInt, GraphQLString, GraphQLList, GraphQLBoolean } = require('graphql');
 
-import {connect} from "./database"
+import {sendQuery} from "./database"
 import * as cors from 'cors';
 
 const MovieType = new GraphQLObjectType({
@@ -31,8 +31,7 @@ const RootQuery = new GraphQLObjectType({
                 lim: {type: GraphQLInt}
             },
             async resolve(parent: any, args: any) {
-                const connection = await connect();
-                const response = await connection.query('SELECT * FROM movie LIMIT '+args.lim);
+                const response = await sendQuery('SELECT * FROM movie LIMIT '+args.lim);
                 return response[0];
             }
         },
@@ -49,7 +48,6 @@ const RootQuery = new GraphQLObjectType({
                 description: { type: GraphQLString },
             },
             async resolve(parent: any, args: any) {
-                const connection = await connect();
                 let query = '';
                 if(typeof args.id!='undefined' && args.id){query = getQuery('id' , args.id)}
                 else if(typeof args.title!='undefined' && args.title){query = getQuery('title' , args.title)}
@@ -60,7 +58,7 @@ const RootQuery = new GraphQLObjectType({
                 else if(typeof args.director_last_name!='undefined' && args.director_last_name){query = getQuery('director_last_name' , args.director_last_name)}
                 else if(typeof args.description!='undefined' && args.description){query = getQuery('description' , args.description)}
 
-                const response = await connection.query(query);
+                const response = await sendQuery(query);
                 return response[0];
             }
         },
@@ -76,12 +74,11 @@ const RootQuery = new GraphQLObjectType({
                 order: {type: GraphQLBoolean}
             },
             async resolve(parent: any, args: any) {
-                const connection = await connect();
                 let query = '';
                 if(typeof args.title!='undefined'  && typeof args.genre!='undefined'){
                     console.log("resolve")
                     query = getSearchQuery(args.title, args.genre, args.order)}
-                const response = await connection.query(query);
+                const response = await sendQuery(query);
                 return response[0];
             }
         }
@@ -132,8 +129,7 @@ const Mutation = new GraphQLObjectType({
                 cover_image: { type: GraphQLString }
             },
             async resolve(parent: any, args: any) { 
-                const connection = await connect();
-                const response = await connection.query('INSERT INTO movie VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)', [args.id, args.title, args.genre, args.rating_dice_throw, args.year, args.director_first_name, args.director_last_name, args.description, args.cover_image]);
+                const response = await sendQuery('INSERT INTO movie VALUES ({$args.id}, {$args.title}, {$args.genre}, {$args.rating_dice_throw}, {$args.year}, {$args.director_first_name}, {$args.director_last_name}, {$args.description}, {$args.cover_image})');
                 return response[0];
             }
         },
@@ -143,8 +139,7 @@ const Mutation = new GraphQLObjectType({
                 id: {type: GraphQLInt}
             },
             async resolve(parent: any, args: any) { 
-                const connection = await connect();
-                const response = await connection.query('DELETE FROM movie WHERE id = ?', [args.id]);
+                const response = await sendQuery('DELETE FROM movie WHERE id = {$args.id}');
                 return response[0];
             }
         },
@@ -162,8 +157,7 @@ const Mutation = new GraphQLObjectType({
                 cover_image: { type: GraphQLString }
             },
             async resolve(parent: any, args: any) { 
-                const connection = await connect();
-                const response = await connection.query('UPDATE movie SET title = ?, genre = ?, rating_dice_throw = ?, year = ?, director_first_name = ?, director_last_name = ? , description = ?, cover_image = ? WHERE id = ?', [args.title, args.genre, args.rating_dice_throw, args.year, args.director_first_name, args.director_last_name, args.description, args.cover_image, args.id]);
+                const response = await sendQuery('UPDATE movie SET title = {$args.title}, genre = {$args.genre}, rating_dice_throw = {$args.rating_dice_throw}, year = {$args.year}, director_first_name = {$args.director_first_name}, director_last_name = {$args.director_last_name} , description = {$args.description}, cover_image = {$args.cover_image} WHERE id = {$args.id}');
                 return response[0];
             }
         },
@@ -174,8 +168,7 @@ const Mutation = new GraphQLObjectType({
                 rating_dice_throw: { type: GraphQLInt }
             },
             async resolve(parent: any, args: any) { 
-                const connection = await connect();
-                const response = await connection.query('UPDATE movie SET rating_dice_throw = ? WHERE id = ?', [args.genre, args.id]);
+                const response = await sendQuery('UPDATE movie SET rating_dice_throw =  {$args.rating_dice_throw} WHERE id = {$args.id}');
                 return response[0];
             }
         }
diff --git a/server/src/server_local.ts b/server/src/server_local.ts
index 319f68e4574ef356938ddc62a1c6b5ff5f4c6ec2..8cb7f6ad365a869ebcfab38adba0d52c269b3b26 100644
--- a/server/src/server_local.ts
+++ b/server/src/server_local.ts
@@ -3,7 +3,7 @@ var express = require('express');
 var { graphqlHTTP } = require('express-graphql');
 var { GraphQLObjectType, GraphQLSchema, GraphQLInt, GraphQLString, GraphQLList, GraphQLBoolean } = require('graphql');
 
-import {connect} from "./database"
+import {sendQuery} from "./database"
 
 const MovieType = new GraphQLObjectType({
     name: "Movie",
@@ -30,8 +30,7 @@ const RootQuery = new GraphQLObjectType({
                 lim: {type: GraphQLInt}
             },
             async resolve(parent: any, args: any) {
-                const connection = await connect();
-                const response = await connection.query('SELECT * FROM movie LIMIT '+args.lim);
+                const response = await sendQuery('SELECT * FROM movie LIMIT '+args.lim);
                 return response[0];
             }
         },
@@ -48,7 +47,6 @@ const RootQuery = new GraphQLObjectType({
                 description: { type: GraphQLString },
             },
             async resolve(parent: any, args: any) {
-                const connection = await connect();
                 let query = '';
                 if(typeof args.id!='undefined' && args.id){query = getQuery('id' , args.id)}
                 else if(typeof args.title!='undefined' && args.title){query = getQuery('title' , args.title)}
@@ -59,7 +57,7 @@ const RootQuery = new GraphQLObjectType({
                 else if(typeof args.director_last_name!='undefined' && args.director_last_name){query = getQuery('director_last_name' , args.director_last_name)}
                 else if(typeof args.description!='undefined' && args.description){query = getQuery('description' , args.description)}
 
-                const response = await connection.query(query);
+                const response = await sendQuery(query);
                 return response[0];
             }
         },
@@ -75,12 +73,11 @@ const RootQuery = new GraphQLObjectType({
                 order: {type: GraphQLBoolean}
             },
             async resolve(parent: any, args: any) {
-                const connection = await connect();
                 let query = '';
                 if(typeof args.title!='undefined'  && typeof args.genre!='undefined'){
                     console.log("resolve")
                     query = getSearchQuery(args.title, args.genre, args.order)}
-                const response = await connection.query(query);
+                const response = await sendQuery(query);
                 return response[0];
             }
         }
@@ -130,8 +127,7 @@ const Mutation = new GraphQLObjectType({
                 cover_image: { type: GraphQLString }
             },
             async resolve(parent: any, args: any) { 
-                const connection = await connect();
-                const response = await connection.query('INSERT INTO movie VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)', [args.id, args.title, args.genre, args.rating_dice_throw, args.year, args.director_first_name, args.director_last_name, args.description, args.cover_image]);
+                const response = await sendQuery('INSERT INTO movie VALUES ({$args.id}, {$args.title}, {$args.genre}, {$args.rating_dice_throw}, {$args.year}, {$args.director_first_name}, {$args.director_last_name}, {$args.description}, {$args.cover_image})');
                 return response[0];
             }
         },
@@ -141,8 +137,7 @@ const Mutation = new GraphQLObjectType({
                 id: {type: GraphQLInt}
             },
             async resolve(parent: any, args: any) { 
-                const connection = await connect();
-                const response = await connection.query('DELETE FROM movie WHERE id = ?', [args.id]);
+                const response = await sendQuery('DELETE FROM movie WHERE id = {$args.id}');
                 return response[0];
             }
         },
@@ -160,8 +155,7 @@ const Mutation = new GraphQLObjectType({
                 cover_image: { type: GraphQLString }
             },
             async resolve(parent: any, args: any) { 
-                const connection = await connect();
-                const response = await connection.query('UPDATE movie SET title = ?, genre = ?, rating_dice_throw = ?, year = ?, director_first_name = ?, director_last_name = ? , description = ?, cover_image = ? WHERE id = ?', [args.title, args.genre, args.rating_dice_throw, args.year, args.director_first_name, args.director_last_name, args.description, args.cover_image, args.id]);
+                const response = await sendQuery('UPDATE movie SET title = {$args.title}, genre = {$args.genre}, rating_dice_throw = {$args.rating_dice_throw}, year = {$args.year}, director_first_name = {$args.director_first_name}, director_last_name = {$args.director_last_name} , description = {$args.description}, cover_image = {$args.cover_image} WHERE id = {$args.id}');
                 return response[0];
             }
         },
@@ -172,8 +166,7 @@ const Mutation = new GraphQLObjectType({
                 rating_dice_throw: { type: GraphQLInt }
             },
             async resolve(parent: any, args: any) { 
-                const connection = await connect();
-                const response = await connection.query('UPDATE movie SET rating_dice_throw = ? WHERE id = ?', [args.genre, args.id]);
+                const response = await sendQuery('UPDATE movie SET rating_dice_throw =  {$args.rating_dice_throw} WHERE id = {$args.id}');
                 return response[0];
             }
         }