refactor the event logic with cells