refactor & support on event

refactor & support on event