update
update doc and functions