use uint8_t instead of byte for consistency