abstract dataTable added + refactor