refactor, extract newEvent