refactor file validity checks
don't automatically mark a new repo dirty