don't require stdint.h