upper bound fixed 2