   transfer: (LocalPath)->
     return new Promise (Resolve, Reject)=>
       RemotePath = @config.remoteDir + '/' + Path.relative(atom.project.getPaths()[0], LocalPath).replace(Path.sep, '/')
-      if @SFTP is null
-        LePromise = @SSH.requestSFTP()
-      else
-        LePromise = Promise.resolve(@SFTP)
-      LePromise.then (SFTP)=>
-        @SFTP = SFTP
-        @SSH.put(LocalPath, RemotePath, SFTP, true).then(Resolve, Reject)
+      @SSH.put(LocalPath, RemotePath, @SFTP, true).then(Resolve, Reject)
   showError:(Message)->
     Notification = atom.notifications.addError("[Hack] #{Message}", {dismissable: true})
     setTimeout ->

        @SSH = new (require('node-ssh'))(Contents)
      catch error
        return @showError(error.toString())
      @SSH.connect().then( =>
        Contents.status = true
        @showSuccess("Successfully Connected to Server")
      , (e)=>
        @showError("Error Connecting to Server: " + e.toString())

      Contents.status = false
      Contents.type = Contents.type || 'remote'
      Contents.port = Contents.port || 22
      return unless Contents.type is 'remote'
      return @showError("Please specify a privateKey") unless Contents.privateKey
      return @showError("Please specify a remoteDir") unless Contents.remoteDir
