add support for data.table