Refactored most of FieldCriterionBuilder into a base class