I think i'll probably just use a shared_ptr for reliability but this is fun to fiddle with