few refactorig