       return (0 ..< amount).map { _ in self[0] }
     }
 
-    let increment              = 1 / CGFloat(amount - 1)
-    var colors: [DynamicColor] = []
+    let increment = 1 / CGFloat(amount - 1)
 
-    for i in 0 ..< amount {
-      colors.append(colorAt(scale: CGFloat(i) * increment))
-    }
-
-    return colors
+    return (0 ..< amount).map { colorAt(scale: CGFloat($0) * increment) }
   }
 
   /**

  /**
   Grab an `amount` of equi-distant colors from a color scale.
   
   -parameters amount: An amount of colors to return. 2 by default.
   */
  public func colors(amount: UInt = 2) -> [DynamicColor] {
    guard amount > 0 && self.count > 0 else {

    var color: DynamicColor = .black

    for (index, position) in positions.enumerated() {
      guard clippedScale <= position else {
        continue
      }

      guard clippedScale != 0 && clippedScale != 1 else {
        return self[index]
      }

      let previousPosition = positions[index - 1]
      let weight           = (clippedScale - previousPosition) / (position - previousPosition)

      color = self[index - 1].mixed(color: self[index], weight: weight)

      break
    }
    
    return color
