Refactor back into a single object for all 3 background types. Reduce multiple singletons. TODO: change demo code