Improved updating list function