Add repos() function and data caching