make our user of other api generic