public override void Load(string filename, string tag)
    {
        base.Load(filename, tag);

        buildingType = ES2.Load <int>(filename + tag + "buildingType");
        int buildingListSize = ES2.Load <int>(filename + tag + "buildingListSize");

        string  type;
        Vector3 middlePosition, rotation;

        for (int i = 0; i < buildingListSize; i++)
        {
            // load building type and position so we can create building
            type           = ES2.Load <string>(filename + tag + "building" + i + "nametype");
            middlePosition = ES2.Load <Vector3>(filename + tag + "building" + i + "realMeshPosition");
            rotation       = ES2.Load <Vector3>(filename + tag + "building" + i + "rotation");

            Building building = buildingFactory.BuildBuilding(middlePosition, type, rotation);
            building.Load(filename, tag + "building" + i);
        }
    }