         var currentLineWidth = 0
         
         for word in self.split(by: splitBy) {
-            let wordLength = word.characters.count
+            let wordLength = word.count
             
             if currentLineWidth + wordLength + 1 > width {
                 /* Word length is greater than line length, can't wrap */

        
        // Create path components separated by delimiter (. by default) and get key for root object
		// filter empty path components, these can be caused by delimiter at beginning/end, or multiple consecutive delimiters in the middle
        let pathComponents : Array<String> = primaryKeypath.components(separatedBy: baseDelimiter).filter({ $0.characters.count > 0 })
        primaryKeypath = pathComponents.joined(separator: baseDelimiter)
        let rootKey : String = pathComponents[0]
		

        let decimalPoint = self._localDecimalPoint()
        
        #if swift(>=3.0)
            let charactersEnumerator = self.enumerated()
        #else
            let charactersEnumerator = self.enumerated()
        #endif
        for (i, c) in charactersEnumerator {
            if i == 0 && c == "-" {
