Be careful: separator needs to be bytes, not internal-encoded.
Refactor to remove unused flexibility.