 
 (declare new-document-ui)
 
-(defrecord NewDocumentColumnSource [id]
+(defrecord NewDocumentColumn [id]
   SpecialColumn
   (special-column-ui [_] new-document-ui)
-  ColumnSource
-  (column-title [_ _]
-    "Create New Document")
-  (column-header-url [_] nil)
-  (column-pages [_ _] [])
-  (remove-pages! [_ state page-ids]
-    (assert false "Can't remove pages from NewDocumentColumnSource"))
   ColumnDropTarget
   (accept-drop! [_ state new-pages _]
     (go

                                          source-column
                                          page-ids
                                          0)))}
     [:header
      (column-title column state)]
     [:.center
      "Drag pages here or press \"Open to open a file or document"
      [:button {:on-click (fn [e]

        target  (first (filter #(= (:id %) target) columns))
        source  (first (filter #(= (:id %) source) columns))
        ;; Remove page-ids already in `target'
        existing-pages (mapv :id (if (satisfies? ColumnSource target)
                                   (column-pages target state)
                                   []))
        pages (into []
                    (comp (remove (set existing-pages))
                          (map page-cache)
