add listener
add listener pattern