refactoring,cleaning,new variations