support incremental update