Refactory and Update doc