Refactor into TrackProvider