Refactored implementation of saveLater - don't rely on destructor if we
can
use destructor as fall-back
Some cleanups.