Design changes and Refactor
Design Changes and Refactoring