further optimize API calls