gc: factor out allocation