animated  diving mode; refactoring; destructor