using stdint instead of windows.h types for future cross platform compatibility