base upper bound