doesn't need to be as complicated as this - bytes to unicode is just `decode('encoding')`. We only need these extra methods when `str` is involved, which is ambiguous from 2 to 3.