some modification of the api