This looks VERY similar to the CTDPF parser.  Maybe we should inherit from that parser and specialize where needed?