reduce api calls