update #1 refactoring