Rename file to better reflect function
Prevent using duplicate idents
Refactor setup of listener into separate func

Means we can defer the listenersLock.Unlock call, which is less
error-prone.