TODO: check the correctness of limited_infection