Major code refactoring for Design level changes