refactoring,validating,add icon and background