finish implementing and documenting BackgroundTask