second refactor
refactor