 ;; then press I to mark for installation and X to execute (it's like dired).
 
 ;; Initialize the package system
+(require 'seq)
 (require 'package)
-
-(add-to-list 'package-archives
-             (cons "melpa" exordium-melpa-package-repo) t)
+(when (or (not (string= exordium-melpa-package-repo
+                        exordium-pinned-melpa-package-repo))
+          (seq-filter (lambda (pkg)
+                        (string= "melpa" (cdr pkg)))
+                      exordium-extra-pinned))
+  (add-to-list 'package-archives
+               (cons "melpa" exordium-melpa-package-repo) t))
 (add-to-list 'package-archives
              (cons "melpa-pinned" exordium-pinned-melpa-package-repo) t)
-(add-to-list 'package-archives
-             (cons "gnu" exordium-gnu-package-repo) t)
+(unless (seq-filter (lambda (repo)
+                      (string= exordium-gnu-package-repo (cdr repo)))
+                    package-archives)
+  (add-to-list 'package-archives
+               (cons "gnu" exordium-gnu-package-repo) t))
 
 (setq package-user-dir (concat "~/.emacs.d/elpa-" emacs-version))
 

(setq custom-file exordium-custom-file)

(defcustom exordium-extra-packages ()
  "Additional packages to auto load from elpa repositories"
    :group 'exordium
    :type  'list)

(defcustom exordium-extra-pinned ()
  "Additional packages locations to pin to"
  :group 'exordium
  :type  'list)

;; Taps definition of before and after files. These are loaded
;; after master 'before', 'after', and 'prefs' files

(defconst exordium-tapped-after-init-files ()
  "all tapped after init files, including master")

(defconst exordium-melpa-package-repo "https://melpa.org/packages/"
  "URL for packages repository")

(defconst exordium-pinned-melpa-package-repo "https://melpa.org/packages/"
  "URL for pinned default packages. Set to stable melpa.org if you want stable")

(defconst exordium-gnu-package-repo "https://elpa.gnu.org/packages/"
  "URL for the GNU package repository")

(when (file-accessible-directory-p exordium-taps-root)
