It also assumes that ContactListener will not be created/destroyed that often. It's a singleton instance, and should exist whenever any model with contact changes enabled exists. Usually, that's at startup and lasts the lifetime of whatever application..