re-apply 3644f1b since we have fixed GC bug