initial update functionality