refactor track detail rendering to be a separate view class