Refactor and beef up EventProcessor