Refactoring & update doc