pull logic out of hasMore into seek method
try to handler underflow
check that block starts are stable