Store nodes instead of locations.

This is so that subclasses can track duration of the gesture if they wish, without spinning up a
new map. These maps are always adding a few bytes to their values isn't going to have a significant
impact.