Make FieldEditor<T> generic to fix #31