include limits.h for UINT_MAX etc.