mac needs the size_t to be defined but linux considers it a redefinition of uint64_t