upper bound fixed