some refactoring in FieldItem