defined service event listener
added and implemented a ui thread notification handler that manages all interaction with listeners; the service itself no longer knows about any listeners