I'm not clear on the benefits of returning `listener` here as it's passed out just as it's passed in.  Could you elaborate on that?