remove upper function