Many more changes than I would typically like in a single commit, but this was all very intertwined. Vertical scrolling using track-stepping still to follow.