always use precalcuated remaining