implement sequential read