some work about execEvent, less crappy now