so ref and weak_ref can now take string keys just like query_ref so you can have circular dependencies all over the place