ENH: Add NOUPDATE option and some refactoring