Change the API again and add doc