 
 (defun java/init-emacs-eclim ()
   (use-package eclim
+    :defer t
+    :init (add-hook 'java-mode-hook 'eclim-mode)
     :config
     (progn
-      (message "starting eclim mode")
-      (global-eclim-mode)
-      (setq help-at-pt-display-when-idle t)
-      (setq help-at-pt-timer-delay 0.1)
+      (setq help-at-pt-display-when-idle t
+            help-at-pt-timer-delay 0.1)
       (help-at-pt-set-timer)
 
       (add-to-list 'minor-mode-alist
-             '(eclim-mode (:eval (eclim-modeline-string))))
+                   '(eclim-mode (:eval (eclim-modeline-string))))
 
       (evil-define-key 'insert java-mode-map
         (kbd ".") 'java/completing-dot

        (kbd "q") 'eclim-quit-window)

      (evil-leader/set-key-for-mode 'java-mode

        "meo" 'eclim-problems-open
        "meb" 'eclim-problems
        "mea" 'eclim-problems-show-all
        "mee" 'eclim-problems-show-errors
        "mew" 'eclim-problems-show-warnings
        "mef" 'eclim-problems-toggle-filefilter
        "men" 'eclim-problems-next-same-window
        "mep" 'eclim-problems-previous-same-window
        "mec" 'eclim-problems-correct

        "mgg" 'eclim-java-find-declaration
        "mgt" 'eclim-java-find-type
        "mff" 'eclim-java-find-generic

        "mrf" 'eclim-java-format
        "mrr" 'eclim-java-refactor-rename-symbol-at-point
        "mri" 'eclim-java-import-organize
        "mrg" 'eclim-java-generate-getter-and-setter
        "mrc" 'eclim-java-constructor
        "mrj" 'eclim-java-implement


        "mhh" 'eclim-java-show-documentation-for-current-element
        "mhu" 'eclim-java-find-references
        "mhc" 'eclim-java-call-hierarchy
        "mhi" 'eclim-java-hierarchy

        "mmm" 'java/maven-clean-install
        "mmp" 'eclim-maven-lifecycle-phases
        "mmR" 'eclim-maven-lifecycle-phase-run
        "mmr" 'eclim-maven-run
        "mmt" 'java/maven-test
        "mmi" 'java/maven-clean-install
        "mmI" 'java/maven-install

        "maa" 'eclim-ant-run
        "mar" 'eclim-ant-run
        "mav" 'eclim-ant-validate
        "mac" 'eclim-ant-clear-cache

        "mpj" 'eclim-project-info-mode
        "mpo" 'eclim-project-open
        "mpb" 'eclim-project-build
        "mpd" 'eclim-project-delete
        "mpg" 'eclim-project-goto
        "mpi" 'eclim-project-import
        "mpc" 'eclim-project-create
        "mpk" 'eclim-project-close
        "mpp" 'eclim-project-mode
        "mpu" 'eclim-project-update


        (kbd "M-,") 'pop-tag-mark
        (kbd "M-<mouse-3>") 'eclim-java-find-declaration
        (kbd "<mouse-8>") 'pop-tag-mark)

      (evil-define-key 'normal eclim-problems-mode-map
        (kbd "a") 'eclim-problems-show-all
