the interface design is a subset of what you want to do with points.

Its basically `point(location, onDrag, valueForDragEvent)`.

I could build a better interface for the `point` function but out of scope for this example