        sock
        (concat
         (json-encode
-         `(:buffer ,(emdocs-get-attached-buffer client)
-           :ip ,(emdocs-get-internal-ip-address)))
+         (list :buffer (emdocs-get-attached-buffer client)
+               :ip (emdocs-get-internal-ip-address)))
         "\n"))
     (let* ((json-object-type 'plist)
            (json-msg (json-read-from-string msg))

         sock
         (concat
          (json-encode
           `(:buffer ,(emdocs-get-attached-buffer client)
             :buffer_contents ,(with-current-buffer
                                           (emdocs-get-attached-buffer client)
                                         (buffer-string))))
          "\n"))))))

;;; TODO: make resyncing the file a command

(defun emdocs-server-filter (sock msg)
  "docstring"

  "docstring")

(defvar-local emdocs-undo-list nil
  "docstring")

(defvar-local emdocs-undo-posn nil
  "docstring")

;;; classes
