reference count.
The biggest issue was that 16-bit atomic operations aren't supported on all architectures.