combination of https://github.com/rubbish emacs setup and some modifications of my own