diff --git a/cs/CS.py b/cs/CS.py
index 0b7cd7a..cd9a344 100644
--- a/cs/CS.py
+++ b/cs/CS.py
@@ -21,92 +21,150 @@
 sel = selectors.DefaultSelector()
 registered_BS = [] # registered backup servers online
 logged_in_users = set()
+global last_login
 last_login = ()
 
 # deals with an AUT request
 # checks users file, responds
-def aut(args, user_socket):
+def aut(args, user_socket, cred):
     # print(args)
     # message to send back
     response = b'AUR '
+    success = False
     username = args[0]
     password = args[1]
-    
-    with open("user_list.txt", 'a+') as f:
-        f.seek(0)
-        users = [value.split() for value in f.readlines()]
-        f.read()
-        nouser = True
-        for value in users:
-            if value == args:
-                # user exists and password is correct
+    filename = 'user_'+username+'.txt'
+
+    if os.path.isfile(filename):
+        # user exists
+        with open(filename, 'r+') as f:
+            if f.read() == password:
+                # user exists and pass is correct
                 response += b' OK\n'
-                nouser = False
                 print("User: " + username)
-                # logged_in_users.add((username,password))
-                global last_login
-                last_login = (username, password)
-                break
-            elif value[0] == username:
-                # user exists password is wrong
+                success = True
+            else:
+                # user exists and pass is wrong
                 response += b' NOK\n'
-                nouser = False
-                break
-        
-        if nouser:
-            #create user in file and return AUR NEW
-            response += b' NEW\n'
-            f.write(username+' '+password+'\n')
-            os.mkdir(os.path.realpath('')+'/user_'+username)
-            print("New user: " + username)
-            # logged_in_users.add((username,password))
-            global last_login
-            last_login = (username, password)
+    else:
+        # user doesnt exist yet
+        with open(filename, 'w+') as f:   f.write(password)
+        os.mkdir(os.path.realpath('')+'/user_'+username)
+        response += b' NEW\n'
+        print("New user: " + username)
+        success = True
 
         
     # print(users)
     # print(response)
     
     user_socket.sendall(response)
+    return success
 
-# deals with a delete user request
-def dlu(args, user_socket):
+# deals with a deluser request
+def dlu(args, user_socket, cred):
     print('DLU')
-    print(last_login)
+    print(cred)
+
+    try:
+        userdir = '/user_'+cred[0]
+        if os.listdir('.'+userdir):
+            # folder not empty
+            user_socket.sendall(b'DLR NOK\n')
+            return
+        # folder empty
+
+        os.remove('user_'+cred[0]+'.txt')
+        os.rmdir('.'+userdir)
+    except OSError:
+        print('Couldnt create modify or delete files in current folder. Check permissions')
+        exit()
+    
     user_socket.sendall(b'DLR OK\n')
 
+#deals with a dirlist request
+def lsd(args, user_socket, cred):
+    print('LSD')
+    print(cred)
+
+    dirlist = os.listdir('.'+'/user_'+cred[0])
+    if not dirlist:
+        # dir is empty
+        user_socket.sendall(b'LDR 0\n')
+        return
+    else:
+        #dir is not empty
+        m = 'LDR '+str(len(dirlist))+' '
+        m += ' '.join(dirlist)
+        user_socket.sendall(m.encode('utf-8')+b'\n')
+
+
+    
+
+#deals with a filelist request
+def lsf(args, user_socket, cred):
+    print('LSF')
+    print(cred)
+    user_socket.sendall(b'LFD OK\n')
+
+#deals with a delete request
+def delete(args, user_socket, cred):
+    print('DEL')
+    print(cred)
+    user_socket.sendall(b'DDR OK\n')
+
+# #deals with a backup request
+# def bck(args, user_socket, cred):
+#     print('BCK')
+#     print(cred)
+#     user_socket.sendall(b'BKK OK\n')
+
+# #deals with a restore request
+# def rst(args, user_socket, cred):
+#     print('RST')
+#     print(cred)
+#     user_socket.sendall(b'BKK OK\n')
+
 # get tcp message until \n is found
 def get_msg(sock):
     msg = b''
     while True:
         try:
             slic = sock.recv(1024)
-            # print(slic)
-            msg += slic
-            if msg.find(b'\n') != -1:
+            if not slic: 
+                msg = b''
                 break
-        except socket.error:
-            continue
+            msg += slic
+            if msg.find(b'\n') != -1: break
+        except socket.error as e:
+            print(e)
+            exit()
     return msg.decode('utf-8').rstrip('\n')
 
 # TCP session with user
 def tcp_session(sock, udp_sock):
     sel.unregister(sock)
-    sock.setblocking(True) 
-    message = get_msg(sock)    
+    sock.setblocking(True)
 
-    
-    actions = { 
+    cred = ()
+
+    actions = {
     'AUT':aut,
-    'DLU':dlu
+    'DLU':dlu,
+    'LSD':lsd,
+    'LSF':lsf,
+    'DEL':delete
     }
-    args = message.split()
-    callable = actions.get(args[0]) # AUT user pass
-    callable(args[1:], sock) # aut( [user,pass] )
- 
+    while True:
+        message = get_msg(sock)
+        if not message: break
+        args = message.split()
+        callable = actions.get(args[0])
+        if callable(args[1:], sock, cred):
+            cred = (args[1], args[2])
 
-    print('closing ', sock.getsockname())
 
+    print('closing ', sock.getsockname())
     sock.close()
 
 def tcp_accept(sock):
diff --git a/user.py b/user.py
index 2f61433..997e500 100755
--- a/user.py
+++ b/user.py
@@ -100,18 +100,20 @@ def deluser(args, credentials, server_info):
     if not authenticate(credentials['user'], credentials['password'], sock):
         sock.close()
         return
-    sock.close()
 
-    sock = create_tcp_socket(server_info)
+    success = False
+
     response = send_msg_sock('DLU', sock)
     if response == 'DLR NOK':
-        print('User deletion not successful: User still has information stored')
+        print('User deletion not successful\nUser still has information stored')
     elif response == 'DLR OK':
-        print('User deletion successful')
+        print('User deletion successful\nLogging out..')
+        success = True
     else:
         print('Unexpected answer: ' + response)
 
     sock.close()
+    return success