Not sure of downfalls using strict global state implementation. When is singleton not ideal for an application?