def from_xml(xml_object, size):
        rubikscube = RubiksCube(size)

        for x in Helper.CUBE_SIDES:
            side = [[None for k in xrange(size)] for i in xrange(size)]
            for y in range(rubikscube.get_size()):
                for z in range(rubikscube.get_size()):
                    value = xml_object.find(x+"/Part-"+str(y)+"-"+str(z)).text
                    if value == str(None):
                        side[y][z] = None
                    else:
                        side[y][z] = int(value)
            rubikscube.set_side(x, side)
        return rubikscube
    def to_code_cube(input_cube):
        if input_cube.__class__ == RubiksCube().__class__:
            return input_cube

        cube = RubiksCube(input_cube.get_size(), False)
        for side in Helper.CUBE_SIDES:
            current_side = input_cube.get_side(side)
            for x in range(input_cube.get_size()):
                for y in range(input_cube.get_size()):
                    if current_side[x][y].color in Helper.CUBE_COLOR:
                        current_side[x][y] = Helper.CUBE_COLOR.index(current_side[x][y].color)
                    else:
                        current_side[x][y] = None

            cube.set_side(side, current_side)

        return cube
    def filter_cube(self, input_cube, xml_cube):
        temp_cube = RubiksCube(self.cube_size, False)

        for side in Helper.CUBE_SIDES:
            current_side = input_cube.get_side(side)
            match_side = xml_cube.get_side(side)

            new_side = []
            for x in range(self.cube_size):
                new_side.append([])
                for y in range(self.cube_size):
                    if match_side[x][y] is None:
                        new_side[x].append(None)
                    else:
                        new_side[x].append(current_side[x][y])

            temp_cube.set_side(side, new_side)
        return temp_cube