@Override
	public boolean init(String fileName) {
		/**
		 * @step connect to db. If connection failed, return false
		 */
		openConnection();
		/**
		 * it does exist, this method truncates the table.
		 */
		if (tableExists(getTableDefinition())) {
			String dropSql = getTableDefinition().getDropStatement();
			if (!executeSql(dropSql)) {
				return false;
			}
		}
		String createSql = getTableDefinition().getSqlCreateStatement();
		if (!executeSql(createSql)) {
			return false;
		}
		/**
		 * @step This method should use a class which implements the ReadFile interface 
		 * to get the parameters to insert.
		 */
		List<List<String>> paramArray = getFileIO().read(fileName);
		List<DatabaseRow> entryList = new ArrayList<DatabaseRow>();
		for (int i=0;i<paramArray.size();i++) {
			for (int j=0;j<paramArray.get(i).size();j++) {
				entryList.add(getDatabaseRow(i, j, paramArray.get(i).get(j)));
			}
		}
		/**
		 * @step Once this method has the results from ReadFile, it should call 
		 * this.insert(...) for each parameter. Ensure that each entry was inserted 
		 * successfully.
		 */
		boolean insertResult = insert(entryList);
		/**
		 * @step return sucess of initialization
		 */
		return insertResult;
	}