nit: I think this belongs elsewhere. Perhaps we want ByteStringBuilder so we can avoid extra copies of the `byte[]` ?