lower and upper bound