fix assumptions that char is signed