@Override
 protected void finalize() throws Throwable {
   try {
     if (!released && autorelease) {
       IO.freeMemory(storage);
       released = true;
     }
   } finally {
     super.finalize();
   }
 }
 public void free() {
   if (!released) {
     IO.freeMemory(storage);
     released = true;
   }
 }