add cache
add multiple caches: lookups & downloads
add download callback for ui

also add cache encapsulation class: Video & Stream