Use with-eval-after-load instead of eval-after-load
Improve with-eval-after-load and add-hook