add better support for saving files, checking for changes, etc