Refactor and updating