xls parser refactor and add tests