introduce TrackedFileSource wrapper