hold on to listener (so it can be closed on component shutdown)
cleanup of components