split all the special field descriptors out into interfaces
fixed failing unit tests after splitting specialfields into interfaces
Merge branch 'fix/specialfields' into develop