Making a Singleton template class. Converting all existing singleton classes to extend the new template one
Merge branch 'refactor.csvgen' into dev
Adding initial test cases.