Changed to event communication instead of callback handlers between controllers and service