update upper bounds