First working version

It backs up the file, in case the user wants to revert, but doesn't
support rollback. If the user wants to rollback he needs to pick the
backupped file and replace.