support GC using reference counting