add gc functions