modify return type