added get_upper_bound