             case .ordinals: selector = kOrdinalsSelector
             case .scientificInferiors: selector = kScientificInferiorsSelector
             }
-            return (type: kVerticalPositionType, selector: selector)
+            return [(type: kVerticalPositionType, selector: selector)]
         }
 
     }
 
     extension FontFeatureProvider {
 
-        /// - returns: a dictionary representing one feature for the attributes key in the font attributes
-        func featureAttribute() -> StyleAttributes {
+        /// - returns: an array of dictionaries, each representing one feature for the attributes key in the font attributes
+        func featureAttributes() -> [StyleAttributes] {
             let featureSettings = self.featureSettings()
-            return [
-                BONFontFeatureTypeIdentifierKey: featureSettings.type,
-                BONFontFeatureSelectorIdentifierKey: featureSettings.selector
-            ]
+            return featureSettings.map {
+                return [
+                    BONFontFeatureTypeIdentifierKey: $0.type,
+                    BONFontFeatureSelectorIdentifierKey: $0.selector,
+                    ]
+            }
         }
     }
 

            var fontAttributes = fontDescriptor.fontAttributes
            var features = fontAttributes[BONFontDescriptorFeatureSettingsAttribute] as? [StyleAttributes] ?? []
            if featureProviders.count > 0 {
                let newFeatures = featureProviders.map() { $0.featureAttribute() }
                features.append(contentsOf: newFeatures)
                fontAttributes[BONFontDescriptorFeatureSettingsAttribute] = features
            }

        case upper
        case lower

        public func featureSettings() -> [(type: Int, selector: Int)] {
            switch self {
            case .upper:
                return [(type: kNumberCaseType, selector: kUpperCaseNumbersSelector)]
            case .lower:
                return [(type: kNumberCaseType, selector: kLowerCaseNumbersSelector)]
            }
        }

