Making the interface of the MetaDataField and PropertyManager generic

Just some changes so that usage of this can be smoother :P