[Backwards Incompatible] Added checkpointing and made a package