Refactoring and add severals new extensions