probably better to use SIZE_T instead
idk