GC works the same for all. As long as we have a finalizer for Repository and we have a struct that has a reference to something inside it (which is almost everything), we need to keep a reference to it, as there's no other way for the Go GC to know.