Singleton Patterns are DANGEROUS (when used across the border of shared libraries)
Singleton Patterns are DANGEROUS ... When you want to control the order of initialization/deinitialization of your objects across shared libraries. Consider the case where you have a beautiful logger