completely rewrote massey-sieve to clean it up; merged limit case