     case GETTIME
 }
 
-class GradientColor {
+struct GradientColor {
     var pos: Double
     var r, g, b: Double
-
-    init(_ pos: Double, _ r: Double, _ g: Double, _ b: Double) {
-        self.pos = pos
-        self.r = r
-        self.g = g
-        self.b = b
-    }
-}
-
-class Gradient {
+}
+
+struct Gradient {
     var colors = [GradientColor]()
 }
 

    return abs(absA - absB) <= max(absA, absB) * DBL_EPSILON
}

func gradientGetColorAtPosition(_ gradient: Gradient, _ pos: Double) -> GradientColor? {
    for color in gradient.colors {
        if equalEnough(color.pos, pos) {
            return color
        }
    }


}

func loadGradient(_ filename: String) -> Gradient? {
    var gradient = Gradient()

    gradient.colors.append(GradientColor(pos: 0.0, r: 0.0, g: 0.0, b: 0.0))
    gradient.colors.append(GradientColor(pos: 1.0, r: 1.0, g: 1.0, b: 1.0))

    do {
        let contentsOfFile = try String(contentsOfFile: filename)
