be more strict about byte check