I found the product of this exercise bulky and unnecessary. Having X, Y and Z controllers for each point led to a large amount of modules for a small outcome.
I used the point geometry to define each point in the curve and attached an XYZ vector to each one.
![Moving points in a Curve]()