public SimulationObject[,,] initializeMap()
    {
        SimulationObject[,,] domain = new SimulationObject[3, this.getRows() + 2, this.getColumns() + 2];
        string[,] realDomain        = this.getDomain();

        //creating floor
        for (int i = 0; i < domain.GetLength(1); i++)
        {
            for (int j = 0; j < domain.GetLength(2); j++)
            {
                // Simulation Object Initiate - inserting wall as name

                domain[0, i, j] = new SimulationObject("f", 0); // assign the simulation objects
            }
        }

        //creating domain
        for (int i = 0; i < this.getRows(); i++)
        {
            for (int j = 0; j < this.getColumns(); j++)
            {
                if (this.getCharAt(i, j).StartsWith("h") || this.getCharAt(i, j).StartsWith("b"))
                {
                    domain[1, i + 1, j + 1] = new SimulationObject(this.getCharAt(i, j).Substring(0, 1), Convert.ToInt32(this.getCharAt(i, j).Substring(1, 2)));
                }
                else
                {
                    domain[1, i + 1, j + 1] = new SimulationObject(this.getCharAt(i, j), 0);
                }
            }
        }

        //creating frame
        for (int i = 0; i < domain.GetLength(2); i++)
        {
            domain[1, 0, i] = new SimulationObject("w", 0);
            domain[1, this.getRows() + 1, i] = new SimulationObject("w", 0);
        }

        for (int i = 0; i < domain.GetLength(1); i++)
        {
            domain[1, i, 0] = new SimulationObject("w", 0);
            domain[1, i, this.getColumns() + 1] = new SimulationObject("w", 0);
        }
        return(domain);
    }