         }
     }
     
-    /// Fourth interval family.
-    public class Fourth: EnumFamily, PerfectIntervalQuatlityType {
-        
-        /// diminished Fourth interval.
-        public static let diminished: EnumKind = .diminishedFourth
-        
-        /// perfect Fourth interval.
-        public static let perfect: EnumKind = .perfectFourth
-        
-        /// augmented Fouth interval.
-        public static let augmented: EnumKind = .augmentedFourth
-        
-        public override class var members: [EnumKind] { return perfectMembers }
-        
-        // DEFAULT Perfect implementation
-        public override class func kind(
-            forPitchSpellingDyad pitchSpellingDyad: PitchSpellingDyad
-        ) -> EnumKind
-        {
-            // exception if lower is F
-            let lowerDirection = pitchSpellingDyad.lower.coarse.direction.rawValue
-            let higherDirection = pitchSpellingDyad.higher.coarse.direction.rawValue
-            var difference: Float {
-                var result = (higherDirection - lowerDirection)
-                if pitchSpellingDyad.lower.letterName == .f { result += 1 }
-                return result
-            }
-
-            switch difference {
-            case -1, -2: return diminished
-            case -0: return perfect
-            case +1, +2: return augmented
-            default: fatalError("Such an interval couldn't possibly exist")
-            }
-        }
-    }
-    
-    /// Fifth interval family.
-    public class Fifth: EnumFamily, PerfectIntervalQuatlityType {
-        
-        /// diminished Fifth interval.
-        public static let diminished: EnumKind = .diminishedFifth
-        
-        /// perfect Fifth interval.
-        public static let perfect: EnumKind = .perfectFifth
-        
-        /// augmented Fifth interval.
-        public static let augmented: EnumKind = .augmentedFifth
-        
-        public override class var members: [EnumKind] { return perfectMembers }
-    
-        // DEFAULT Perfect implementation
-        public override class func kind(
-            forPitchSpellingDyad pitchSpellingDyad: PitchSpellingDyad
-            ) -> EnumKind
-        {
-            // exception if lower is B
-            let lowerDirection = pitchSpellingDyad.lower.coarse.direction.rawValue
-            let higherDirection = pitchSpellingDyad.higher.coarse.direction.rawValue
-            var difference: Float {
-                var result = (higherDirection - lowerDirection)
-                if pitchSpellingDyad.lower.letterName == .b { result -= 1 }
-                return result
-            }
-            
-            switch difference {
-            case -1, -2: return diminished
-            case -0: return perfect
-            case +1, +2: return augmented
-            default: fatalError("Such an interval couldn't possibly exist")
-            }
-        }
-    }
-    
-    /// Sixth interval family.
-    public class Sixth: EnumFamily, ImperfectIntervalQualityType {
-        
-        /// diminished Sixth interval.
-        public static let diminished: EnumKind = .diminishedSixth
-        
-        /// minor Sixth interval.
-        public static let minor: EnumKind = .minorSixth
-        
-        /// major Sixth interval.
-        public static let major: EnumKind = .majorSixth
-        
-        /// augmented Sixth interval.
-        public static let augmented: EnumKind = .augmentedSixth
+    /// Seventh interval family.
+    public class Seventh: EnumFamily, ImperfectIntervalQualityType {
+        
+        /// diminished Seventh interval.
+        public static let diminished: EnumKind = .diminishedSeventh
+        
+        /// minor Seventh interval.
+        public static let minor: EnumKind = .minorSeventh
+        
+        /// major Seventh interval.
+        public static let major: EnumKind = .majorSeventh
+        
+        /// augmented Seventh interal.
+        public static let augmented: EnumKind = .augmentedSeventh
         
         public override class var members: [EnumKind] { return imperfectMembers }
         

    
    static var augmented: IntervalQuality.EnumKind { get }
    
    static func directionDifference(fromPitchSpellingDyad pitchSpellingDyad: PitchSpellingDyad)
        -> Float
    

        }
    }
    
    /// Fourth interval family.
    public class Fourth: EnumFamily, PerfectIntervalQuatlityType {
        
        /// diminished Fourth interval.
        public static let diminished: EnumKind = .diminishedFourth
        
        /// perfect Fourth interval.
        public static let perfect: EnumKind = .perfectFourth
        
        /// augmented Fouth interval.
        public static let augmented: EnumKind = .augmentedFourth
        
        public override class var members: [EnumKind] { return perfectMembers }
        
        // DEFAULT Perfect implementation
        public override class func kind(
            forPitchSpellingDyad pitchSpellingDyad: PitchSpellingDyad
        ) -> EnumKind
        {
            // exception if lower is F
            let lowerDirection = pitchSpellingDyad.lower.coarse.direction.rawValue
            let higherDirection = pitchSpellingDyad.higher.coarse.direction.rawValue
            var difference: Float {
                var result = (higherDirection - lowerDirection)
                if pitchSpellingDyad.lower.letterName == .f { result += 1 }
                return result
            }

            switch difference {
            case -1, -2: return diminished
            case -0: return perfect
            case +1, +2: return augmented
            default: fatalError("Such an interval couldn't possibly exist")
            }
        }
    }
    
    /// Fifth interval family.
    public class Fifth: EnumFamily, PerfectIntervalQuatlityType {
        
        /// diminished Fifth interval.
        public static let diminished: EnumKind = .diminishedFifth
        
        /// perfect Fifth interval.
        public static let perfect: EnumKind = .perfectFifth
        
        /// augmented Fifth interval.
        public static let augmented: EnumKind = .augmentedFifth
        
        public override class var members: [EnumKind] { return perfectMembers }
    
        // DEFAULT Perfect implementation
        public override class func kind(
            forPitchSpellingDyad pitchSpellingDyad: PitchSpellingDyad
            ) -> EnumKind
        {
            // exception if lower is B
            let lowerDirection = pitchSpellingDyad.lower.coarse.direction.rawValue
            let higherDirection = pitchSpellingDyad.higher.coarse.direction.rawValue
            var difference: Float {
                var result = (higherDirection - lowerDirection)
                if pitchSpellingDyad.lower.letterName == .b { result -= 1 }
                return result
            }
            
            switch difference {
            case -1, -2: return diminished
            case -0: return perfect
            case +1, +2: return augmented
            default: fatalError("Such an interval couldn't possibly exist")
            }
        }
    }
    
    /// Sixth interval family.
    public class Sixth: EnumFamily, ImperfectIntervalQualityType {
        
        /// diminished Sixth interval.
        public static let diminished: EnumKind = .diminishedSixth
        
        /// minor Sixth interval.
        public static let minor: EnumKind = .minorSixth
        
        /// major Sixth interval.
        public static let major: EnumKind = .majorSixth
        
        /// augmented Sixth interval.
        public static let augmented: EnumKind = .augmentedSixth
        
        public override class var members: [EnumKind] { return imperfectMembers }
        
