func (r *Reader) Push(reader io.Reader) {
	r.readers = append(r.readers, reader)
}
func (r *Reader) Push(reader io.Reader) {
	r.readers = append(r.readers, reader)
}
// Push causes the Reader to start reading from a new io.Reader. When an EOF
// error is seen from the new io.Reader, it is popped and the Reader continues
// to read from the next most recent io.Reader.