internal static Task<Resource> OpenAsync()
 {
     return Task.Run<Resource>(() => 
     {
         Resource.Singleton = new Resource();
         return Resource.Singleton;
     });
 }
 internal Task CloseAsync()
 {
     return Task.Run(() => { Resource.Singleton = null; });
 }
 internal static Task LogAsync(Resource res, ResourceException e)
 {
     //nothing to do yet
     return null;
 }