   ///
   /// - 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)
  }


    for fret in fretViews {
      let fretIndex = fret.note.fretIndex
      let stringIndex = fret.note.stringIndex

      // Position
      var position = CGPoint()
      switch fretboard.direction {
