update code and doc.
update doc
update doc