   ///
   /// - Parameter note: To be selected note in fretboard.
   public func select(note: Note) {
-    notes.forEach{ $0.isSelected = $0.note == note }
+    notes.filter({ $0.note == note }).forEach({ $0.isSelected = true })
     delegate?.fretboad(self, didSelectedNotesChange: notes)
   }
 

  ///
  /// - Parameter note: To be unselected note in fretboard.
  public func unselect(note: Note) {
    notes.forEach{ $0.isSelected = $0.note == note && $0.isSelected ? false : $0.isSelected }
    delegate?.fretboad(self, didSelectedNotesChange: notes)
  }


  ///
  /// - Parameter notes: Notes to be selected.
  public func select(notes: [Note]) {
    let hasNote: (FretboardNote) -> Bool = { fret in
      return notes.contains(where: { $0 == fret.note })
    }

    self.notes.filter(hasNote).forEach({ $0.isSelected = true })
    delegate?.fretboad(self, didSelectedNotesChange: self.notes)
  }

