changed the singletons to use dispatch_once