use uint32_t