A lot of refactoring. Implemented user prompting, added formatting variables to the config, and added a diff feature