implement experimental packData()