replace swap! to reset!