use generic result bounded by the api call