#23 cache api calls