conrtinued refactoring
conrtinued refactoring