implement some API, and add api document