more abstracted refcounting