Fixed a few things

-Singleton methods now return a smart pointer
-Some changes not included because I am too tired