register the listener though