rebase 1 refactoring