decode byte string first