change World initializer to generate an initial matrix of cells and some refactoring