More Refactoring and design paradigm shift