fix on upper bound