     
     public private(set) var title: String = "Title"
     public private(set) var baseLanguage: String = "English"
-    public private(set) var currentLanguage: String = "English"
+    public var currentLanguage: String = "English" {
+        didSet {
+            reloadCurrentTaskNode()
+        }
+    }
+    public var currentLanguageCode: String {
+        return languageCodeOfLanguage(currentLanguage)
+    }
     
     private let wholeXML: XMLIndexer
     private let processDefinition: XMLIndexer

            let nameComponents = UsbongXMLName(name: name, language: currentLanguage)
            if let taskNodeType = TaskNodeType(rawValue: nameComponents.type) {
                // Translate text if current language is not base language
//                let translatedText = currentLanguage != baseLanguage ? translateText(nameComponents.text) : nameComponents.text
                
                // Parse text
                let finalText = parseText(nameComponents.text)
                
                // Temporary transition info to be used by link and decision task nodes
                var fetchedTransitionInfo = [String: String]()

        if let currentTaskNodeName = taskNodeNames.last {
            currentTaskNode = taskNodeWithName(currentTaskNodeName)
        }
    }
    
    // MARK: Language
    private var currentLanguageXMLURL: NSURL? {
        for url in languageXMLURLs {
            // Check if file name is equal to language
            let name = url.URLByDeletingPathExtension?.lastPathComponent ?? "Unknown"
            if currentLanguage == name {
                return url
            }
        }
        return nil
    }
    
    private func translateText(text: String) -> String {
        var translatedText = text
        
        // Fetch translation from XML
        if let languageXMLURL = currentLanguageXMLURL {
            let languageXML = SWXMLHash.parse(NSData(contentsOfURL: languageXMLURL) ?? NSData())
            let resources = languageXML[UsbongXMLIdentifier.resources]
            
            if let stringElement = try? resources[UsbongXMLIdentifier.string].withAttr(UsbongXMLIdentifier.name, text) {
                translatedText = stringElement.element?.text ?? text
            }
        }
        
        return translatedText
    }
    
    // MARK: Transitions
