add rendered event
add removed events
refactor