Full Refactoring
Full Refactoring