Of course, handle unicode as well as byte strings here...