refactoring purpose class