Is there any reason we need to cast everything to unicode? Are we expecting wacky encodings?