refactored save interactive