I think this is identical to both PPField2 and PPFIeld3, and can be removed to the generic PPField class.