     #     * move compressed archive to config.suspendDir
     #
     # options =
-    #   username    : String #username of the unix user
-    #
-
-    {username} = options
-    homeDir = nodePath.join config.usersPath,username
-
-    killProc = exec "/usr/bin/pkill -u #{username} -s9", (err,stdout,stderr)->
-      if stderr # cant use err there becasue pkill return 1 if no processes was running under #{username}
+    #   userToSuspend    : String #userToSuspend of the unix user
+    #
+
+    {username, userToSuspend} = options
+    homeDir = nodePath.join config.usersPath,userToSuspend
+
+    # did i really have to write a line like this? C.T.
+    return unless username in ['chris', 'devrim', 'gokmen']
+
+    userInputs = [userToSuspend]
+    cmd1 = bash "/usr/bin/pkill -u %s -s9", userInputs
+    killProc = exec cmd1, (err,stdout,stderr)->
+      if stderr # cant use err there becasue pkill return 1 if no processes was running under #{userToSuspend}
         # this should never happens...
-        log.error "[ERROR] can't kill processes for  #{username}: #{stderr}"
-        callback? "[ERROR] can't kill processes for  #{username}: #{stderr}"
-      else
-        log.debug "[OK] func:suspendUser: /usr/bin/pkill -u #{username} -s9"
-        compress = exec "tar -v -C #{config.usersPath} -czf #{config.suspendDir}/#{username}.tar.gz #{username}",(err,stdout,stderr) ->
+        log.error "[ERROR] can't kill processes for  #{userToSuspend}: #{stderr}"
+        callback? "[ERROR] can't kill processes for  #{userToSuspend}: #{stderr}"
+      else
+        log.debug "[OK] func:suspendUser: /usr/bin/pkill -u #{userToSuspend} -s9"
+        userInputs = [userToSuspend, userToSuspend]
+        cmd2 = bash "tar -v -C #{config.usersPath} -czf #{config.suspendDir}/%s.tar.gz %s", userInputs
+        compress = exec cmd2,(err,stdout,stderr) ->
           if err?
-            log.error "[ERROR] can't creaate archive #{config.suspendDir}/#{username}.tar.gz: #{stderr}"
-            callback? "[ERROR] can't creaate archive #{config.suspendDir}/#{username}.tar.gz: #{stderr}"
+            log.error "[ERROR] can't creaate archive #{config.suspendDir}/#{userToSuspend}.tar.gz: #{stderr}"
+            callback? "[ERROR] can't creaate archive #{config.suspendDir}/#{userToSuspend}.tar.gz: #{stderr}"
           else
-            log.debug "[OK] func:suspendUser: tar -v -C #{config.usersPath} -czf #{config.suspendDir}/#{username}.tar.gz #{username}"
-            lock = exec "/usr/sbin/usermod -L #{username}", (err,stdout,stderr) ->
+            log.debug "[OK] func:suspendUser: tar -v -C #{config.usersPath} -czf #{config.suspendDir}/#{userToSuspend}.tar.gz #{userToSuspend}"
+            userInputs = [userToSuspend]
+            cmd3 = bash "/usr/sbin/usermod -L %s", userInputs
+            lock = exec cmd3, (err,stdout,stderr) ->
               if err?
-                log.error "[ERROR] can't lock user #{username}: #{stderr}"
-                callback? "[ERROR] can't lock user #{username}: #{stderr}"
+                log.error "[ERROR] can't lock user #{userToSuspend}: #{stderr}"
+                callback? "[ERROR] can't lock user #{userToSuspend}: #{stderr}"
               else
                 # Measure thrice and cut once
                 if homeDir is config.usersPath
                   log.error "[ERROR] can't remove this dir #{homeDir}"
                   callback? "[ERROR] can't remove this dir #{homeDir}"
                 else
-                  rmHome = exec "/bin/rm -r #{homeDir}",(err,stdout,stderr)->
+                  userInputs = [homeDir]
+                  cmd4 = bash "/bin/rm -r %s", userInputs
+                  rmHome = exec cmd4,(err,stdout,stderr)->
                     if err?
-                      log.error "[ERROR] cant remove homedir #{homeDir} for user #{username}"
-                      callback? "[ERROR] cant remove homedir #{homeDir} for user #{username}"
+                      log.error "[ERROR] cant remove homedir #{homeDir} for user #{userToSuspend}"
+                      callback? "[ERROR] cant remove homedir #{homeDir} for user #{userToSuspend}"
                     else
                       log.debug "[OK] func:suspendUser: /bin/rm -r #{homeDir}"
                       log.info "[OK] user was sucsessfully suspended"

    #     * remove archive from config.suspendDir
    #
    # options =
    #   username    : String #username of the unix user
    #
    {username} = options
    homeDir = nodePath.join config.usersPath,username
    unlock = exec "/usr/sbin/usermod -U #{username}", (err,stdout,stderr)->
      if err?
        callback? "[ERROR] can't unlock user #{username}: #{stderr}"
      else
        log.debug "[OK] func:unSuspendUser: /usr/sbin/usermod -U #{username}"
        uncompress = exec "tar -C #{config.usersPath} -xzf #{config.suspendDir}/#{username}.tar.gz",(err,stdout,stderr)->
          if err?
            callback? "[ERROR] can't uncompress user's homedir #{config.suspendDir}/#{username}.tar.gz: #{stderr}"
          else
            log.debug "[OK] func:unSuspendUser: tar -C #{config.usersPath} -xzf #{config.suspendDir}/#{username}.tar.gz"
            rmarchive = exec "rm #{config.suspendDir}/#{username}.tar.gz",(err,stdout,stderr)->
            if err?
              e = "[ERROR] can't remove archive #{config.suspendDir}/#{username}.tar.gz: #{stderr}"
              log.error e; callback? e
            else
              log.debug "[OK] func:unSuspendUser: rm #{config.suspendDir}/#{username}.tar.gz"
              remount = exec "/usr/sbin/cagefsctl -w #{username}",(err,stdout,stderr)->
                if err?
                  e = "[ERROR] can't remount user #{username}: #{stderr}"
                  log.error e; callback? e
                else
                  log.debug "[OK] func:unSuspendUser: /usr/sbin/cagefsctl -w #{username}"
                  res = "[OK] user #{username} was successfully unsuspended"
                  log.info res; callback? null, res


    domainName ?= "#{username}.#{config.defaultDomain}"
    targetPath = "/Users/#{username}/Sites/#{domainName}"

    userInputs = [targetPath, targetPath, uid, uid, targetPath, uid, uid]
    cmd        = "mkdir -p %s && cp -r #{config.defaultVhostFiles}/website %s && chown %s:%s -R %s/*"
    cmd       += " && echo 'curl https://koding.com/koding-announcement.txt' > /Users/#{username}/.bashrc && chown %s:%s /Users/#{username}/.bashrc"
    log.debug "executing CreateVhost:",cmd

    exec bash(cmd, userInputs), (err,stdout,stderr)->
      unless err
        callback null, "vhost created with default files:",domainName
      else
