Refactoring, add event raising to service