use uint8_t and uint32_t