   (let ((kotct/packup-marker-char ?\040))
     (kotct/packup-mark arg interactive)))
 
-;; TODO (un)mark all
+;; TODO {,un}mark all
+
+(defun kotct/packup-initialize-buffer-contents ()
+  (package-refresh-contents)
+  (let ((install-list nil))
+    (dolist (package kotct/dependency-list)
+      (if (or (not (package-installed-p package))
+              (not (kotct/package-up-to-date-p package)))
+          (apply 'kotct/packup-insert-package-row (list package (package-desc-version (cadr (assq package package-alist)))))))))
 
 (defun kotct/packup-initialize-buffer ()
   "Initializes the packup buffer."

        mode-name "Packup"
        buffer-read-only t ;; read only
        mode-line-buffer-identification "packup")
  (package-refresh-contents)
  (let ((install-list nil))
    (dolist (package kotct/dependency-list)
      (let () ;; TODO: delete me?
        (if (or (not (package-installed-p package))
                (not (kotct/package-up-to-date-p package)))
            (apply 'kotct/packup-insert-package-row (list package (package-desc-version (cadr (assq package package-alist))))))))))

(defvar packup-mode-map
  (let ((map (make-keymap)))
    (define-key map "m" 'kotct/packup-mark)
    (define-key map "u" 'kotct/packup-unmark)
;;    (define-key map "g" 'kotct/packup-refresh) TODO

    map))

;;;###autoload

    (pop-to-buffer-same-window buffer)))

;;;###autoload
(defun kotct/packup-install-dependencies (no-refresh &optional update auto-update)
  "Installs the dependencies.
With a non-nil or prefix arg NO-REFRESH, do not refresh package list.
If UPDATE is non-nil, out-of-date packages will be added to install list.
If AUTO-UPDATE is non-nil, out-of-date/uninstalled packages will be updated."
  (interactive "P")

  (unless no-refresh (package-refresh-contents))
