refactoring finishing touchs
refactoring finishing touchs 2