Yes, I think three, actually.  The one in ContactListener is created much more frequently than I expected, because it looks like it is supposed to be a singleton.  I decided to leave it is as for now, unless something demonstrates a problem.