Jobs should define how to serialize and de-serialize themselves