improved update