Switched to OOP approach for future expansion