this return type is not always a string