refacotor the event item