Update and Refactoring