using sieve now
actually forget sieve, this is OK
cleanup
the second part