   :init
   (evil-mode 1)
 
-  ;; My leader key map
-  (bind-keys :map evil-normal-state-map :prefix-map rock-leader :prefix "SPC")
-
-  :bind (:map rock-leader
-              ("ss" . flyspell-mode)
-              ("sn" . flyspell-goto-next-error)
-              ("sc" . ispell-word)
-              ("bk" . kill-this-buffer)
-              ("bm" . buffer-menu)
-              ("wm" . maximize-window)
-              ("w=" . balance-windows)
-              ("wk" . delete-window)
-              ("wr" . window-configuration-to-register))
+  ;; Spacemacs style leader bindings
+  (bind-keys :map evil-normal-state-map :prefix "SPC" :prefix-map rock-leader)
+  (bind-keys :map rock-leader :prefix "s" :prefix-map rock/spelling)
+  (bind-keys :map rock-leader :prefix "b" :prefix-map rock/buffers)
+  (bind-keys :map rock-leader :prefix "w" :prefix-map rock/windows)
+  (bind-keys :map rock-leader :prefix "d" :prefix-map rock/directories)
+  (bind-keys :map rock-leader :prefix "p" :prefix-map rock/projects)
+  (bind-keys :map rock-leader :prefix "a" :prefix-map rock/alchemist)
+  (bind-keys :map rock-leader :prefix "m" :prefix-map rock/magit)
+  (bind-keys :map rock-leader :prefix "h" :prefix-map rock/help)
+  (bind-keys :map rock-leader :prefix "t" :prefix-map rock/toggles)
+
+  :bind (:map rock/spelling
+              ("s" . flyspell-mode)
+              ("n" . flyspell-goto-next-error)
+              ("c" . ispell-word))
+
+  :bind (:map rock/buffers
+              ("k" . kill-this-buffer)
+              ("m" . buffer-menu))
+
+  :bind (:map rock/windows
+              ("m" . maximize-window)
+              ("=" . balance-windows)
+              ("k" . delete-window)
+              ("r" . window-configuration-to-register))
 
   :bind (:map evil-normal-state-map
               ("C-h" . evil-window-left)

  :ensure nil
  :config
  (put 'dired-find-alternate-file 'disabled nil)
  :bind (:map rock-leader
              ("dd" . dired-jump)))

(use-package swiper
  :bind ("C-s" . swiper))

  (setq projectile-completion-system 'ivy)
  :config
  (projectile-global-mode)
  :bind (:map rock/projects
              ("t" . projectile-toggle-between-implementation-and-test)
              ("T" . projectile-find-test-file)
              ("P" . projectile-test-project)
              ("k" . projectile-kill-buffers)
              ("r" . projectile-replace)
              ("k" . projectile-kill-buffers)
              ("j" . projectile-find-tag)
              ("R" . projectile-regenerate-tags)
              ("i" . projectile-invalidate-cache)))

(use-package counsel-projectile
  :bind (:map rock/projects
              ("p" . counsel-projectile-switch-project)
              ("b" . counsel-projectile-switch-to-buffer)
              ("d" . counsel-projectile-find-dir)
              ("f" . counsel-projectile-find-file)
              ("a" . counsel-projectile-ag)))

(use-package drag-stuff
  :diminish drag-stuff-mode
