add views
add listeners