 (defun vimgolf-revert ()
   "Revert the work buffer to it's original state and reset keystrokes."
   (interactive)
-  (save-current-buffer
-    (set-buffer (get-buffer-create vimgolf-work-buffer-name))
+  (with-current-buffer (get-buffer-create vimgolf-work-buffer-name)
     (delete-region (point-min) (point-max))
     (insert-buffer (get-buffer-create vimgolf-start-buffer-name))
     (clear-dribble-file)

(defvar vimgolf-end-buffer-name "*vimgolf-end*")

(defun point-min-in-buffer (buffer)
  (save-current-buffer
    (set-buffer buffer)
    (point-min)))

(defun point-max-in-buffer (buffer)
  (save-current-buffer
    (set-buffer buffer)
    (point-max)))

(defun vimgolf-solution-correct-p ()

           (get-buffer vimgolf-end-buffer-name) (point-min-in-buffer vimgolf-end-buffer-name) (point-max-in-buffer vimgolf-end-buffer-name)))))

(defun vimgolf-close-and-capture-dribble ()
  (with-current-buffer (find-file-noselect vimgolf-dribble-file-path)
    (append-to-file (point-min) (point-max) vimgolf-keystrokes-file-path)
    (kill-buffer))
  (open-dribble-file nil))

(defun vimgolf-open-dribble-file (file)
