refactor and restyle
refactor and restyle