first pass at GoL functions