Refactoring files into individual responsibilities, and genericizing the code.
Merge branch 'master' of github.com:JohnPostlethwait/dotfiles