make sure use 32bit long int