Breaking up parser so we can use composition.