Factor out client EventProcessor module