and we don't need weakset