Added another layer called BillingSystem and BillingEngine, to have the class instantiation on a separate class (BillingSystem)