Added a service class in lieu of callbacks