added update function prototype and progress block