refactorate code
refactorate code