aa
refactor the code