             if let contentView = emptyView as? ContentView {
                 contentView.setup(content: self)
             }
-            if self.isEmpty {
+            if self.isEmpty && !hidden {
                 configuration.refreshControl?.isEnabled = !self.isEmpty
-                _view.addSubview(emptyView)
-                _view.isScrollEnabled = false
+                self.layout(view: emptyView)
                 _view.set(contentOffset: .zero)
-                emptyView.frame = _view.bounds
-                emptyView.layoutIfNeeded()
             } else {
                 emptyView.removeFromSuperview()
                 _view.isScrollEnabled = true

        configuration.refreshControl?.isEnabled = true
        configuration.infiniteControl?.stopAnimating()
        configuration.emptyView?.removeFromSuperview()
        if stateWas == .refreshing {
            self.adapter.removeAll()
            self.reloadData()
        }
        if let errorView = errorView(error), stateWas == .refreshing {
            _view.isScrollEnabled = false
            if let contentView = errorView as? ContentView {
                contentView.setup(content: self)
            }
            if let errorHandleable = errorView as? ErrorHandleable {
                errorHandleable.setup(error: error)
            }
            errorView.frame = self.view.bounds
            errorView.layoutIfNeeded()
            self.view.addSubview(errorView)
        }
        self.URLCallbacks.didLoad?(error, [])
    }

        }
    }
    open func loadItems() {
        self.URLCallbacks.onLoad?(self)
    }
    
    // Utils
    
    func handle(with error: Error) {
        let prevState = _state
        _state = .none
        configuration.refreshControl?.stopAnimating()
        configuration.refreshControl?.isEnabled = false
