Move some logic to TrackOperations