integrated with data.table