     {
         let reaction = CollectionViewReaction(.CellConfiguration)
         reaction.viewType = _reflect(T)
-        reaction.reactionBlock = { [weak self, reaction] in
+        reaction.reactionBlock = { [weak self, unowned reaction] in
             if let configuration = reaction.reactionData as? ViewConfiguration,
                 let view = configuration.view as? T,
                 let model = self?.storage.itemAtIndexPath(configuration.indexPath) as? T.ModelType

    {
        let reaction = CollectionViewReaction(.Selection)
        reaction.viewType = _reflect(T)
        reaction.reactionBlock = { [weak self, reaction] in
            if let indexPath = reaction.reactionData as? NSIndexPath,
                let cell = self?.collectionView.cellForItemAtIndexPath(indexPath) as? T,
                let model = self?.storage.itemAtIndexPath(indexPath) as? T.ModelType

    {
        let reaction = CollectionViewReaction(.Selection)
        reaction.viewType = _reflect(T)
        reaction.reactionBlock = { [weak self, unowned reaction] in
            if let indexPath = reaction.reactionData as? NSIndexPath,
                let cell = self?.collectionView.cellForItemAtIndexPath(indexPath) as? T,
                let model = self?.storage.itemAtIndexPath(indexPath) as? T.ModelType,
