begin update functionality