refactoring by adding partial