Use dispatch_once for thread safety