Factor auto field logic to its own method, detect engine using writable route