the whole thing is now serializable