Changed all major constructors from public to internal and added singleton methods to prevent bad things from happening.This commit WILL break things! Not to worry, it'll only take you about two minutes to go over the changes and fix what broke :)