         }
 
         if performInBackground {
-            DispatchQueue.global(qos: .userInitiated).async {
+            self.chattoUpdatesQueue.async {
                 guard let modelUpdate = createModelUpdate() else { return }
 
                 DispatchQueue.main.async {

    private let presentersByCell = NSMapTable<UICollectionViewCell, AnyObject>(keyOptions: .weakMemory, valueOptions: .weakMemory)

    public private(set) var chatItemCompanionCollection = ChatItemCompanionCollection(items: [])

    public init(chatItemsDecorator: ChatItemsDecoratorProtocol,
                chatItemPresenterFactory: ChatItemPresenterFactoryProtocol,

                updateType: updateType
            ) {
                guard let sSelf = self else { return }

                if sSelf.updateQueue.isEmpty {
                    sSelf.enqueueMessageCountReductionIfNeeded()
                }
