add snack and complete

the interesting bits really are the extension methods.
array.random returns a random entry of the array
uri.download asynchronously downloads the uri.