       (error (list 'fuel-con-error (format "%s" cerr))))))
 
 (defun fuel-con--process-next (con)
-  (when (not (fuel-con--connection-current-request con))
-    (let* ((buffer (fuel-con--connection-buffer con))
+  (when (not (alist-get :current con))
+    (let* ((buffer (alist-get :buffer con))
            (req (fuel-con--connection-pop-request con))
-           (str (and req (fuel-con--request-string req)))
+           (str (and req (alist-get :string req)))
            (cbuf (with-current-buffer (fuel-con--comint-buffer)
                    (erase-buffer)
                    (current-buffer))))

(defsubst fuel-con--connection-p (c)
  (and (listp c) (eq (car c) :fuel-connection)))

(defsubst fuel-con--connection-requests (c)
  (alist-get :requests c))

(defsubst fuel-con--connection-current-request (c)
  (alist-get :current c))

(defun fuel-con--connection-clean-current-request (c)
  (let* ((cell (assoc :current c))
         (req (cdr cell)))

(defun fuel-con--comint-redirect-hook ()
  (if (not fuel-con--connection)
      (fuel-log--error "No connection in buffer")
    (let ((req (alist-get :current fuel-con--connection)))
      (if (not req) (fuel-log--error "No current request")
        (fuel-con--process-completed-request req)
        (fuel-con--connection-clean-current-request fuel-con--connection)))))
