     // MARK: Public Properties
     //
     
+    // If ViewModel should update it's output on loading states.
+    public var updateOutputOnLoad = true
+    
     public private(set) weak var parent: ViewModel?
     
     // Observer of view model, usually a controller or a view

        state = .setuped
        loadDate = nil
        
        updateOutput()
        
        if let observer = observer {
            observer.viewModelDidUnload(self)

        state = .loaded
        loadDate = Date()
        
        if updateOutputOnLoad {
            updateOutput()
        }
        
        if let observer = self.observer {
            observer.viewModelDidLoad(self)
