rename pre_read to peek