This doesn't look right (I'm not arguing that it's wrong... but it doesn't look quite right).  Is this because time_old is declared as Restartable when it should be declared as Recoverable?