Learnt you shouldn't add ~/.emacs.d to load-path because it's used for autogenerated files. Instead, use a subdirectory for elisp files.