rework events persistence