         for index in indexPaths {
             let obj = collectionView.item(at: index)
             if obj != nil {
+                // Create an array instance to hold the data we need to send
+                let array: NSMutableArray = NSMutableArray.init()
                 let item = obj as! FFCollectionViewItem
+                array.add(item)
+                array.add(button)
+
+                // Send the selected item to the buttons via a notifications
                 let nc = NotificationCenter.default
-                nc.post(name: NSNotification.Name(rawValue: "select.image") , object: item)
+                nc.post(name: NSNotification.Name(rawValue: "select.image") , object: array)
             }
         }
     }


        let item = collectionView.makeItem(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "FFCollectionViewItem"), for: indexPath)
        guard let collectionViewItem = item as? FFCollectionViewItem else { return item }
        collectionViewItem.image = icons[count]
        collectionViewItem.index = count
        collectionViewItem.view.toolTip = tooltips[count]
        count = count + 1


    @IBOutlet weak var collectionView: NSCollectionView!

    var icons: NSMutableArray = NSMutableArray.init()
    var tooltips: [String] = []
    var count: Int = 0
    var button: FFIconButton = FFIconButton()
    
    override func viewDidLoad() {

        super.viewDidLoad()

        // Configure the collection view
        configureCollectionView()

        tooltips.append("Lantern")
        tooltips.append("Sword")
