refactor TableParser