pack things into a struct, track transfer mode