Fix/specialfields

The descriptors in `/SpecialFields` were a bit odd, descriptors with public properties. 

This PR split them out into interfaces just as with the other descriptors.