update & list function