add api document (unfinished)