Got it
🙂 Thank you for the clarification.
You could do this in two ways depending on how comfortable you are with Marketo.
1) You could definitely use streams and have each stream be for a group who downloaded a specific whitepaper and then not have that whitepaper in the stream
2) You can house your whitepaper emails in a regular program and have a smart campaign that references that email (this is what you will drag into the Engagement Program that will send out your content). Then what you will need to do is create a batch and a trigger. The batch will add anyone who has downloaded the whitepaper before as a member of that program. The trigger will do the same thing but for all new leads. (I would once again refer you to the Edward Unthank community article)
The second option is probably the most scalable method. It's more work than dragging emails, but if your company has multiple teams who send out the same asset, but different versions of it e.g. in different languages, then the second method would actually help make sure your customers and prospects don't receive it twice.