refactor, publish persisted event