working recreation; now need to generalize grid portion