finally fixed update mechanism