change unsigned long int to uint32_t