improve events
add events demo