function [predictedValue] = TEAK(myRow, dataset, currentPreProcessor)

% this function uses TEAK algorithm to find the estimate for the current
% test instance

featureSize = size(dataset,2);

% firstly normalize the row and data
if strcmp(currentPreProcessor, 'normalize') ~= 1
    myTempToNormalize = [myRow;dataset];
    myTempToNormalize = myNormalizer(myTempToNormalize);
    myRow = myTempToNormalize(1,:);     % store normalized test data
    myTempToNormalize(1,:) = [];        % delete test data
    dataset = myTempToNormalize;
end

% run teak  on the current dataset and row, then get the predicted value
% and return it
[pred0, mre0,selectedBestLevels,varianceOfSelectedBestPlaces, gac2Tree, gac2Root] = treeK(myRow,dataset);
[predictedValue, mreGac2,instanceSizeGac2,varianceOfSelectedBestPlacesGAC2] = secondGac(gac2Tree, gac2Root, myRow);
 
end