size_t are always greater than 0, why not keeping the long ?