added IsPrime()