add smart decision of nfeatures