added downloading and caching utility classes, for possible future expansion