refactoring some classes, and modifying how the capabilities (now properties) are handled for each MetaDataField