feat(reader): add backup, position, peeker