fix optional value
add listenTo