lowered upper bound