in-passing cleanups
make track rendering arch easier to write more track types: write a new TrackRenderer for new track visualizations