                     return lhs.1 * (1 - s) + rhs.1 * s
                 }
                 
-                return stops[0].1
+                return first.1
             }
         }
     }

                    return lhs.1 * (1 - s) + rhs.1 * s
                }
                
                return stops[0].1
            }
        }
    }
}

        
        switch stops.count {
        case 0: break
        case 1:
            
            let color = stops[0].1
            axialShading(start: start, end: end, startSpread: startSpread, endSpread: endSpread) { _ in color }
            
        default:
            
            let first = stops.first!
            let last = stops.last!
            
            axialShading(start: start, end: end, startSpread: startSpread, endSpread: endSpread) { t -> ColorPixel<Pixel.Model> in
                
                if t <= first.0 {
                    return first.1
                }
                if t >= last.0 {
                    return last.1
                }
                
                for (lhs, rhs) in zip(stops, stops.dropFirst()) where lhs.0 != rhs.0 && t >= lhs.0 && t <= rhs.0 {
