why returning a string instead of an error or a []byte + error?