we are working with int32 and not long
c is unsigned so always >= 0