adds listener