Working a lot of things out with the singletons, trying to figure out if this is the right architecture.