move some logic to the MMApReader class