This is Andrew Hansen's game of life v2