doing: GC, done: COW, TODO: frame & set