some refactoring of FieldVal
tidying up