added a wrapper object for keeping scope around singleton, updated tests but still more work to be done in the refactor, tests not passing