Mark and sweep garbage collection