basically: * header and storage that are inner mutable * a bunch of interfaces (arcmutex, producer, consumer, etc) that need an owned or borrowed reference to the hdr+storage * some way to drop the storage if it's an arc, or not drop the storage if it's a static, when all the interfaces are dropped