}
    
    public boolean performFinish() {
        final IFieldData data = new AlgorithmData();
        final IProjectProvider provider = new AlgorithmProjectProvider();
        final WorkspaceModifyOperation op = new NewProjectCreationOperation(data, provider, this);
        
        try {
            getContainer().run(true, true, new IRunnableWithProgress() {
                public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
                    monitor.beginTask("Creating Algorithm Project...", 150);
                    
                    try {
                        op.run(new SubProgressMonitor(monitor, 100));
                    } catch (Throwable e) {
                        e.printStackTrace();
                    }
                    
                    File outFile = provider.getProject().getLocation().append(