refactoringv2