checkpointing first cast impl (works for String but with some things stubbed out)