yet another refactor - twoD in gc (incomplete)