Converted to Modular Pattern
Restructuring