Merge branches 'wip/gc/optimize' and 'wip/gc/test' into wip/gc/everything