change DataTable to support IList