refactoring
refactoring p.2