process.add(new CheckWriteAccessStep(context, session.getProfileManager(), session.getRoot()));
process.add(new File2MetaFileComponent(file, context, context, networkManager));
process.add(new InitializeChunksStep(context, dataManager, session.getFileConfiguration()));
process.add(new CreateNewVersionStep(context, session.getFileConfiguration()));
process.add(new PutMetaFileStep(context, dataManager));
process.add(new UpdateMD5inUserProfileStep(context, session.getProfileManager()));
// TODO: cleanup can be made async because user operation does not depend on it
process.add(new CleanupChunksStep(context, dataManager));
process.add(new PrepareNotificationStep(context));
process.add(createNotificationProcess(context, networkManager));