major rewrite using use-package and cask