(1) Refactor concurrency, (2) write to .gfo.tmp then rename to .gfo