fulfill the docs of current apis and modify little