def initialize(inputFileDir, rdr):
    (parentUserIdToUserDict, parentBusinessIdToBusinessDict, parent_reviews) =\
        rdr.readData(inputFileDir)
    print len(parent_reviews)
    bnssEdited = 0
    for bnssId in parentBusinessIdToBusinessDict.iterkeys():
        if bnssId in parentBusinessIdToBusinessDict:
            parentBusinessIdToBusinessDict[bnssId].setRating(parentBusinessIdToBusinessDict[bnssId].getRating())
            bnssEdited+=1
    print bnssEdited
    parent_graph = OldGraphUtil.createGraph(parentUserIdToUserDict,parentBusinessIdToBusinessDict,parent_reviews)

#     unnecessary_reviews = set()
#     cc = sorted(networkx.connected_component_subgraphs(parent_graph,False), key=len, reverse=True)
#     for g in cc:
#         g.initializeDicts()
#
#     for g in cc:
#         usr_count = g.getUserCount()
#         bnss_count = g.getBusinessCount()
#         if(usr_count==1):
#             usr = g.getUser(g.getUserIds()[0])
#             for bnss in g.neighbors(usr):
#                 review = g.getReview(usr.getId(),bnss.getId())
#                 unnecessary_reviews.add(review.getId())
#         if(bnss_count==1):
#             bnss = g.getBusiness(g.getBusinessIds()[0])
#             for usr in g.neighbors(bnss):
#                 review = g.getReview(usr.getId(),bnss.getId())
#                 unnecessary_reviews.add(review.getId())
#     print len(unnecessary_reviews)

#     cross_9_months_graphs = SIAUtil.createTimeBasedGraph(parentUserIdToUserDict, parentBusinessIdToBusinessDict, parent_reviews, '9-M')
    cross_time_graphs = OldGraphUtil.createTimeBasedGraph(parentUserIdToUserDict,\
                                                          parentBusinessIdToBusinessDict,\
                                                           parent_reviews, '1-Y')
    beforeThreadTime = datetime.now()
    cross_time_lbp_runner_threads = []
    for time_key in cross_time_graphs.iterkeys():
        print '----------------------------------GRAPH-', time_key, '---------------------------------------------\n'
        lbp_runner = LBPRunnerThread(cross_time_graphs[time_key], 50, 'Initial LBP Runner for Time'+str(time_key))
        cross_time_lbp_runner_threads.append(lbp_runner)
        lbp_runner.start()
    for lbp_runner in cross_time_lbp_runner_threads:
        lbp_runner.join()
    afterThreadTime = datetime.now()
    print 'Time to be reduced',afterThreadTime-beforeThreadTime
    return (cross_time_graphs, parent_graph)