LoginProcessContext context = new LoginProcessContext();
// process composition
SequentialProcess process = new SequentialProcess();
process.add(new GetUserProfileStep(credentials, context, dataManager));
process.add(new SessionCreationStep(params, context, networkManager));
process.add(new GetUserLocationsStep(credentials.getUserId(), context, networkManager.getDataManager()));
process.add(new ContactOtherClientsStep(context, networkManager));
process.add(new PutUserLocationsStep(context, context, dataManager));
process.add(new SynchronizeFilesStep(context, networkManager));