payload classes should be shared