Added 'ensure'. Implemented 'restore'