         set( a ) { data[3] = a    }
     }
     init( v: [Float] ) {
-        self.data = Array(data[0...3])
+        self.data = v
     }
     init( x: Float, y: Float, z: Float, w: Float ) {
         self.data = [x,y,z,w]

    }
}

struct Vec4: Vector {
    let count = 4
    var data = [Float]( count: 4, repeatedValue: 0.0 )
    subscript( index: Int ) -> Float {

        set( y ) { data[1] = y    }
    }
    init( v: [Float] ) {
        self.data = v
    }
    init( x: Float, y: Float ) {
        self.data = [x,y]
