keep needsUpdate and lastVersion