use stdint.h instead of custom typedef