refactoring all code
refactoring all code