various changes
add events