small refactor of Ep.PerField to make subclasses easier