refactoring
refactoring take two