I'm usually opposed to singletons, but I decided to make an exception for this one...