use size_t instead of int. -Wsign-compare