refactoring continues
fruther refactoring