Wonder if we need a separate func that copies the logic of the U8 func. Any reason not to make this a wrapper to the U8 with a int8_t cast?