diff --git a/src/fr/inrialpes/exmo/align/impl/BasicOntologyNetwork.java b/src/fr/inrialpes/exmo/align/impl/BasicOntologyNetwork.java
index 65d89d2b0dc90f0ca22aeebbe36119734a3cb8ba..43982ad97bca7837fe0bd3ad8318f20f5e33bfa8 100644
--- a/src/fr/inrialpes/exmo/align/impl/BasicOntologyNetwork.java
+++ b/src/fr/inrialpes/exmo/align/impl/BasicOntologyNetwork.java
@@ -31,8 +31,10 @@ import java.util.Map;
 import java.util.Set;
 import java.util.HashSet;
 import java.util.Hashtable;
+import java.util.Properties;
 import java.net.URI;
 import java.net.URISyntaxException;
+import java.lang.reflect.Constructor;
 
 import java.io.PrintWriter;
 import java.io.InputStream;
@@ -56,6 +58,7 @@ import fr.inrialpes.exmo.align.parser.AlignmentParser;
 import fr.inrialpes.exmo.align.impl.Namespace;
 
 import org.semanticweb.owl.align.Alignment;
+import org.semanticweb.owl.align.AlignmentProcess;
 import org.semanticweb.owl.align.AlignmentException;
 import org.semanticweb.owl.align.OntologyNetwork;
 
@@ -236,7 +239,7 @@ public class BasicOntologyNetwork implements OntologyNetwork {
      * public void match( Class<? extends AlignmentProcess> method, boolean reflexive ) throws AlignmentException {
     }
      */
-    public void match( String method, boolean reflexive, boolean symmetric) throws AlignmentException {
+    public void match( String method, boolean reflexive, boolean symmetric, Properties params ) throws AlignmentException {
 	for ( OntologyTriple ot1 : ontologies.values() ) {
 	    for ( OntologyTriple ot2 : ontologies.values() ) {
 		if ( ( ot1 == ot2 && reflexive )
@@ -246,13 +249,27 @@ public class BasicOntologyNetwork implements OntologyNetwork {
 		    for ( Alignment al : als ) {
 			remAlignment( al );
 		    }
-		// Create the alignment process
-		//AlignmentProcess ap = ... 
-		// Match
-		//ap.init( ot1.onto, ot2.onto );
-		//ap.align( init, (Properties)null );
-		// replace
-		//addAlignment( ap );
+		    // Create the alignment process
+		    AlignmentProcess ap = null;
+		    try {
+			// Create alignment object
+			Class<?> alignmentClass = Class.forName( method );
+			Class[] cparams = {};
+			Constructor alignmentConstructor = alignmentClass.getConstructor(cparams);
+			Object[] mparams = {};
+			ap = (AlignmentProcess)alignmentConstructor.newInstance( mparams );
+			ap.init( ot1.onto, ot2.onto );
+		    } catch ( Exception ex ) {
+			logger.error( "Cannot create alignment {}", method );
+			throw new AlignmentException( "Cannot create alignment "+method, ex );
+		    }
+		    // Compute alignment
+		    long time = System.currentTimeMillis();
+		    ap.align( init, params ); // or params?
+		    long newTime = System.currentTimeMillis();
+		    ap.setExtension( Namespace.ALIGNMENT.uri, Annotations.TIME, Long.toString(newTime - time) );
+		    // replace
+		    addAlignment( ap );
 		}
 	    }
 	}
diff --git a/src/fr/inrialpes/exmo/align/service/AServProtocolManager.java b/src/fr/inrialpes/exmo/align/service/AServProtocolManager.java
index 61e5245910a8e2066c4047db1d367abeb66a8e9c..0f589045cc98575c23458d45c71960c1289b20b5 100644
--- a/src/fr/inrialpes/exmo/align/service/AServProtocolManager.java
+++ b/src/fr/inrialpes/exmo/align/service/AServProtocolManager.java
@@ -1377,9 +1377,7 @@ public class AServProtocolManager implements Service {
         }
   
     
-public List<Message> alignonet( Properties params ) {
-    	
-    	
+    public List<Message> alignonet( Properties params ) {
     	List<Message> result = new ArrayList<>();
     	//not finished
     	//parameters: onID, method, reflexive, symmetric
@@ -1412,9 +1410,7 @@ public List<Message> alignonet( Properties params ) {
 			    }
 		    }
 	    }
-	    
 	    return result;
- 
     }
 
     
@@ -1431,22 +1427,21 @@ public List<Message> alignonet( Properties params ) {
     	if (params.getProperty("symmetric") != null) symmetric = true;
     	
     	try {
-			noo = alignmentCache.getOntologyNetwork( id );
-			} catch (AlignmentException e1) {
-				return new UnknownOntologyNetwork( params, newId(), serverId,id );
-				}
+	    noo = alignmentCache.getOntologyNetwork( id );
+	} catch (AlignmentException e1) {
+	    return new UnknownOntologyNetwork( params, newId(), serverId,id );
+	}
     	logger.debug(" Before Network alignments results, id: {} total ontologies: {} total alignments: {}",id, noo.getOntologies().size(),noo.getAlignments().size());
     	
     	try { 
-    		((BasicOntologyNetwork) noo).match(method, reflexive, symmetric);
-    		} catch (AlignmentException e) {
+	    ((BasicOntologyNetwork)noo).match( method, reflexive, symmetric, params );
+	} catch (AlignmentException e) {
     	    return new ErrorMsg( params, newId(), serverId,"Network alignment error" );
     	}
     	
     	logger.debug(" Network alignments results, id: {} total ontologies: {} total alignments: {}",id, noo.getOntologies().size(),noo.getAlignments().size());
     	return new OntologyNetworkId( params, newId(), serverId, id,
-				   ((BasicOntologyNetwork) noo).getExtension( Namespace.ALIGNMENT.uri, Annotations.PRETTY ));
-    	
+				      ((BasicOntologyNetwork) noo).getExtension( Namespace.ALIGNMENT.uri, Annotations.PRETTY ));
     }