Not a comment on this pull request, but something from the article that we've run into as well: Singletons carry state with them that last as long as the program lasts. Persistent state is the enemy of unit testing.