Refactor and add some functionalities