public int init(BinarySearchTree<String,String,String> tree) throws IndexOutOfBoundsException, IOException {
        
    	Properties prop = new Properties();
    	InputStream istream = getClass().getClassLoader().getResourceAsStream("com/file/resources/additionalsearchtree.properties");
    	
    	List<BinaryNode<String, String, String>> li = null;
    	
    	
    	try {
			prop.load(istream);
			
		} catch (IOException e) {
			e.printStackTrace();
		}
    	String pathLocation=prop.getProperty("path");
		
		File file = new File(pathLocation);
		
		
		if(!file.exists()){
			try {
				file.createNewFile();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		
        
		BufferedReader br = new BufferedReader(new FileReader(file));
        
        	
        	if(br.readLine()!=null){
            	
                int size = deserialize(tree);
                br.close();
                return(size);
            
            }else{

            	tree.add("Ram GC","DW-210","Bhaktapur");
        		tree.add("Hari Shrestha","DW-211","Kupandole");
        		tree.add("Shyam Karki","DW-2100","Kupandole");
            
        		li = tree.inOrder(tree.returnRoot());
        		
    		

        		for(int i=li.size()-1; i>=0; i--) {
            
        			serialize(li.get(i).key,li.get(i).value,li.get(i).address);
        		}
        		br.close();
        		return(li.size());

            }
        	

    }