     case .maj: return [.unison, .M3, .P5]
     case .min: return [.unison, .m3, .P5]
     case .aug: return [.unison, .M3, .m6]
+		case .M5: return [.unison, .P5]
     case .b5: return [.unison, .M3, .d5]
     case .dim: return [.unison, .m3, .d5]
     case .sus: return [.unison, .P4, .P5]

    case .sus: return "sus4"
    case .sus2: return "sus2"
    case .dom6: return "6"
    case .m6: return "minor 6"
    case .dom7: return "Dominant 7th"
    case .M7: return "Major 7th"
    case .m7: return "minor 7th"
    case .aug7: return "aug7"
    case .dim7: return "dim7"
    case .M7b5: return "7b5"
    case .m7b5: return "m7b5"
    case .dom9: return "9"
    case .M9: return "Major 9"
    case .m9: return "minor 9"
    case .dom11: return "11"
    case .M11: return "Major 11"
    case .m11: return "minor 11"
    case .dom13: return "13"
    case .M13: return "Major 13"
    case .m13: return "minor 13"
    case .add9: return "add 9"
    case .madd9: return "minor add9"
    case .M7b9: return "7b9"
    case .m7b9: return "m7b9"
    case .M6add9: return "6add9"
    case .m6add9: return "minor 6add9"
    case .dom7add11: return "7add11"
    case .M7add11: return "Major 7add11"
    case .m7add11: return "minor 7add11"
    case .dom7add13: return "7th add13"
    case .M7add13: return "Major 7add13"
    case .m7add13: return "minor 7add13"
    case .M7a5: return "7#5"
    case .m7a5: return "m7#5"
    case .M7a9: return "7#9"
    case .M7a5b9: return "7#5b9"
    case .M9a11: return "9#11"
    case .M9b13: return "9b13"
    case .M6sus4: return "6sus4"
    case .maj7sus4: return "Major 7sus4"
    case .M7sus4: return "7sus4"
    case .M9sus4: return "9sus4"
    case .maj9sus4: return "Major 9 sus4"
    case .mM7: return "minor Major 7"
    case .mM9: return "minor Major 9"
    case .mM11: return "minor Major 11"
    case .mM13: return "minor Major 13"
    case .mM7add11: return "minor Major 7add11"
    case .mM7add13: return "minor Major 7add13"
    case .M5: return "5"
    case .custom(_, let description): return "\(description)"
    }

/// - Returns: Returns bool value of equeation.
public func ==(lhs: Interval, rhs: Interval) -> Bool {
	return lhs == rhs
}

/// Extends `Interval` by any given octave.
/// For example between C1 and D1, there are 2 halfsteps but between C1 and D2 there are 14 halfsteps.
//// ```.M2 * 2``` will give you D2 from a C1.
///
/// - Parameters:
///   - interval: Interval you want to extend by an octave.
///   - octave: Octave you want to extend your interval by.
/// - Returns: Returns new interval by calculating halfsteps between target interval and octave.
public func *(interval: Interval, octave: Int) -> Interval {
	return Interval(halfstep: interval.halfstep + (12 * (octave - 1)))
}

/// Defines the interval between `Note`s in halfstep tones and degrees.
