return after we check 0 to avoid unecessary updat