                         continue
                     }
                     
-                    let updatedValue: String = {
-                        
-                        let oldTranslation = oldTranslations.filter{ $0.0 == key }.first
-                        if let existingValue = oldTranslation?.1 {
-                            if !force {
-                                return existingValue
+                    let oldTranslation = oldTranslations.filter{ $0.0 == key }.first
+                    
+                    // get value from default comment structure if possible
+                    let oldBaseValue: String? = {
+                        if let oldComment = oldTranslation?.2 {
+                            if let foundMatch = self.defaultCommentStructureMatches(inString: oldComment) {
+                                return (oldComment as NSString).substringWithRange(foundMatch.rangeAtIndex(1))
                             }
                         }
                         
-                        if !addNewValuesAsEmpty {
-                            return newValue
-                        }
-                        
-                        return ""
-                        
+                        return nil
                     }()
-                    
-                    let updatedComment: String? = try {
-                        
-                        let oldTranslation = oldTranslations.filter{ $0.0 == key }.first
+
+                    
+                    let updatedComment: String? = {
                         
                         guard let oldComment = oldTranslation?.2 else {
                             // add new comment if none existed before

                            return newComment
                        }
                        
                        let defaultCommentStructureRegex = try NSRegularExpression(pattern: "\\A Class = \".*\"; .* = \".*\"; ObjectID = \".*\"; \\z", options: .CaseInsensitive)
                        let structureMatches = defaultCommentStructureRegex.matchesInString(oldComment, options: .ReportCompletion, range: NSMakeRange(0, oldComment.characters.count))
                        
                        if updateCommentWithBase && structureMatches.count > 0 {
                            return newComment
                        } else {
                            return oldComment
                        }
                    }()
                    
                    let updatedTranslation = (key, updatedValue, updatedComment)
                    translations.append(updatedTranslation)

            print((error as NSError).description)
        }
        
    }
    
    private func defaultCommentStructureMatches(inString string: String) -> NSTextCheckingResult? {
        do {
            let defaultCommentStructureRegex = try NSRegularExpression(pattern: "\\A Class = \".*\"; .* = \"(.*)\"; ObjectID = \".*\"; \\z", options: .CaseInsensitive)
            return defaultCommentStructureRegex.matchesInString(string, options: .ReportCompletion, range: NSMakeRange(0, string.characters.count)).first
        } catch {
            return nil
        }
    }
    
    /// Rewrites file with specified translations and reloads lines from new file.
