Update refactoring and design