private void startCollection() throws SQLException {
		Timer = new TimeCal(Settings.timer);
		Timer.start();
		
		dataStore = new DataStorage();
		dataStore.initialTable();
		
		dataStore.start();
		
		while(true){
			System.out.print("");
			if(TwitterCrawler.finishStore){
				TwitterCrawler.finishStore = false;
				
				TFFreq = new TreeMap<String,Integer>(Settings.TFHashtagFreq);
				TFFreq_sample = new TreeMap<String,double[]>(Settings.TFHashtagFreq_sample);
				
				/*for(String hashtag : TFFreq.keySet()){
					if(TFFreq_sample.containsKey(hashtag)){
						double[] sample = TFFreq_sample.get(hashtag);
						String temp = "";
						for(double freq:sample) temp+=freq+", ";		
						System.out.println("{"+hashtag+"} "+temp);
					}else{
						System.out.println("********************* {"+hashtag+"} not in sample array");
					}
				}*/
				
				
				checkBlackList();
				checkMinFreq();
				ArrayList<Entry<String,Integer>> list = sortByValue(TFFreq);
				/*for(Entry<String, Integer>   entry   :   list){
					String hash = entry.getKey();
					int freq = entry.getValue();
					for(int i = 0; i<Settings.baseKeywords.length; i++){
						if(hash.replace("#", "").equals(Settings.baseKeywords[i].toLowerCase())){
							list.remove(hash);
							System.out.print("{REMOVED}");
						}
					}
					System.out.println("Hashtag <"+hash+"> got frequency "+freq);
				}*/
				
				/*for(Entry<String, Integer>   entry   :   list){
					String hashtag = entry.getKey();
					if(TFFreq_sample.containsKey(hashtag)){
						double[] sample = TFFreq_sample.get(hashtag);
						String temp = "";
						for(double freq:sample) temp+=freq+", ";		
						System.out.println("{"+hashtag+"} "+temp);
					}else{
						System.out.println("********************* {"+hashtag+"} not in sample array");
					}
				}*/
				
				TFFreq = getTopN(list);
				String topNList = "";
				for(String keyword:TFFreq.keySet().toArray(new String[TFFreq.size()]))	topNList += keyword+", ";
				System.out.printf("************ %3d ************ Top-N Keyword List: %s\n", TFFreq.size(), topNList);
				
				//if using grow ratio to get top N
				//ArrayList<Entry<String,Integer>> listRatio = sortByValue_growRatio();
				//TFFreq = getTopN_growRatio(listRatio);
				
				/*//print sample table
				Iterator<Entry<String, double[]>> iter= TFFreq_sample.entrySet().iterator(); 
				while(iter.hasNext()){
					Entry<String, double[]> ent = iter.next();
					String hashtag = ent.getKey();
					double[] freq = ent.getValue();
					
					String s="";
					for(double d:freq)	s+=d+", ";
					System.out.println("hashtag {"+hashtag+"} got freq {"+s+"}");
				}*/
				
				//putLastKeywords();		
				
				Settings.queryKeywords = corFilter();
				
				String queryList = "";
				for(String keyword:Settings.queryKeywords)	queryList += keyword+", ";
				System.out.printf("************ %3d ************ Queried Keyword List: %s\n", Settings.queryKeywords.length, queryList);				
				
				writeKeywordFile(Settings.queryKeywords,false);
								
				for(String hash:Settings.queryKeywords){
		    		if(Settings.TFHashtagFreq.containsKey(hash)){
		    			Settings.TFHashtagFreq_last.put(hash, Settings.TFHashtagFreq.get(hash));
		    		}
		    	}
		    	for(String hash:Settings.queryKeywords){
		    		if(Settings.TFHashtagFreq_sample.containsKey(hash)){
		    			Settings.TFHashtagFreq_sample_last.put(hash, Settings.TFHashtagFreq_sample_last.get(hash));
		    		}
		    	}
		    	
		    	query.track(Settings.queryKeywords);
		    	
				Settings.TFHashtagFreq.clear();
				Settings.TFHashtagFreq_sample.clear();
				TFFreq.clear();
				TFFreq_sample.clear();
				
		    	twitterStream.filter(query);		    	
				TwitterCrawler.Timer.restart();
				
			}
		}
	}