Found out that deleting the Vector interface was a bad idea, as the *InterpolatorVector interpolators depended on it. Since structs can't implement interfaces, I had to create wrapper types for them. I re-created the Vector interface (renamed to IVector<V extends IVector<V, K>, K>) and moved it to interpolators.vector. Also created WrappedVector2/3/4 to wrap the Vector2/3/4 structs.