--- /dev/null
+// Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+// Use of this source code is governed by an apache-2.0 license that can be
+// found in the LICENSE file.
+
+#include "common/step/filesystem/step_recover_per_user_storage_directories.h"
+#include "common/step/filesystem/step_remove_per_user_storage_directories.h"
+
+namespace bf = boost::filesystem;
+
+namespace common_installer {
+namespace filesystem {
+
+Step::Status StepRecoverPerUserStorageDirectories::RecoveryNew() {
+ StepRemovePerUserStorageDirectories step(context_);
+ Status status = step.precheck();
+ if(status != Status::OK)
+ return status;
+ return step.process();
+}
+
+} // namespace filesystem
+} // namespace common_installer
+
--- /dev/null
+// Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
+// Use of this source code is governed by an apache-2.0 license that can be
+// found in the LICENSE file.
+
+#ifndef COMMON_STEP_FILESYSTEM_STEP_RECOVER_PER_USER_STORAGE_DIRECTORIES_H_
+#define COMMON_STEP_FILESYSTEM_STEP_RECOVER_PER_USER_STORAGE_DIRECTORIES_H_
+
+#include <manifest_parser/utils/logging.h>
+
+#include "common/installer_context.h"
+#include "common/step/recovery/step_recovery.h"
+
+namespace common_installer {
+namespace filesystem {
+
+/**
+ * @brief recovers data and shared directories of application for user
+ *
+ * This is the part of Recovery Mode that is responsible for restoring data and
+ * shared directories for users in case partial install occurs.
+ */
+class StepRecoverPerUserStorageDirectories : public recovery::StepRecovery {
+ public:
+ using StepRecovery::StepRecovery;
+
+ Status RecoveryNew() override;
+ Status RecoveryUpdate() override { return Status::OK; }
+
+ private:
+
+ STEP_NAME(RecoverStorageDirectories)
+};
+
+} // namespace filesystem
+} // namespace common_installer
+
+#endif // COMMON_STEP_FILESYSTEM_STEP_RECOVER_PER_USER_STORAGE_DIRECTORIES_H_