refactory
refactory codes