How do I instantiate the contents of an asset bundle multiple times?

I am trying to load a series of asset bundles and I am instantiating objects from each one. Sometimes my code sees that an asset bundle has already been downloaded so in which case it needs to just load from the existing bundle. How do I do that?

So I have the basics for each bundle which work fine:

download = new WWW (url);
yield download;
downloadedAssetBundle=Instantiate(download.assetBundle.mainAsset);

…but how do I just instantiate from an existing bundle?

you have to use bundle.unload to keep your object intact so that everytime you load the scene the assetbundle coroutine will download the object and show it in the scene