it seems to be a bad practice to exposure `ByteString` directly to users... consistent and explicit String (de)serialization stages would be better.