diff --git a/src/main/java/environment/BasinNetwork.java b/src/main/java/environment/BasinNetwork.java
index 7254a3f0dce5e7efc78295661a4a57ece447f232..3d24431f56df92e29928969d9229510cdd3c5b93 100644
--- a/src/main/java/environment/BasinNetwork.java
+++ b/src/main/java/environment/BasinNetwork.java
@@ -32,12 +32,6 @@ public abstract class BasinNetwork extends Environment<Basin, DiadromousFish> {
 	public abstract Basin getAssociatedRiverBasin(Basin basin);
 
 
-	public abstract Basin getAssociatedInshoreBasin(Basin basin);
-
-
-	public abstract Basin getAssociatedOffshoreBasin(Basin basin);
-
-
 	public abstract Map<Basin, Double> getNeighboursWithDistance(Basin basin);
 
 
@@ -47,15 +41,9 @@ public abstract class BasinNetwork extends Environment<Basin, DiadromousFish> {
 	public abstract RiverBasin getRiverBasin(String basinName);
 
 
-	public abstract InshoreBasin getInshoreBasin(String riverBasinName);
-
-
 	public abstract RiverBasin[] getRiverBasins();
 
 
-	public abstract InshoreBasin[] getInshoreBasins();
-
-
 	public abstract String[] getRiverBasinNames();
 
 
diff --git a/src/main/java/environment/BasinNetworkWithnBasins.java b/src/main/java/environment/BasinNetworkWithnBasins.java
index cf092c271d90feca601a8dcdcf8ad086268a8243..d9633bd1784e15cfa33e7b816a4dbf60c140a850 100644
--- a/src/main/java/environment/BasinNetworkWithnBasins.java
+++ b/src/main/java/environment/BasinNetworkWithnBasins.java
@@ -14,6 +14,7 @@ import environment.OffshoreBasin.OffshoreBasinFunction;
 import fr.cemagref.simaqualife.kernel.util.TransientParameters.InitTransientParameters;
 import fr.cemagref.simaqualife.pilot.Pilot;
 
+@Deprecated
 public class BasinNetworkWithnBasins extends GridBasinNetwork {
 
 	private String basinNetworkFileName = "data/input/BasinNetwork.csv";
diff --git a/src/main/java/environment/GridBasinNetwork.java b/src/main/java/environment/GridBasinNetwork.java
index 593baa7e885fce8bbe47ccb963b11b4ec7e72b92..357b65f18cf36b097cab1c03a1b79c2eb5f8da28 100644
--- a/src/main/java/environment/GridBasinNetwork.java
+++ b/src/main/java/environment/GridBasinNetwork.java
@@ -6,12 +6,11 @@ import java.util.Map;
 import java.util.TreeMap;
 
 import fr.cemagref.simaqualife.kernel.AquaNismsGroup;
-import fr.cemagref.simaqualife.kernel.spatial.Environment;
 import fr.cemagref.simaqualife.kernel.util.TransientParameters.InitTransientParameters;
 import fr.cemagref.simaqualife.pilot.Pilot;
 import species.DiadromousFish;
 
-public abstract class GridBasinNetwork extends Environment<Basin, DiadromousFish> {
+public abstract class GridBasinNetwork extends BasinNetwork {
 
 	protected int nbBasin;
 	protected int memorySize; // size of all the queues
@@ -28,6 +27,7 @@ public abstract class GridBasinNetwork extends Environment<Basin, DiadromousFish
 	protected transient Time time;
 
 
+	@Override
 	@InitTransientParameters
 	public void initTransientParameters(Pilot pilot) {
 		time = new Time();
@@ -49,6 +49,7 @@ public abstract class GridBasinNetwork extends Environment<Basin, DiadromousFish
 	}
 
 
+	@Override
 	public Basin getAssociatedRiverBasin(Basin basin) {
 		int i = getRow(basin.getId());
 		return (grid[getId(i, 0)]);
@@ -87,6 +88,7 @@ public abstract class GridBasinNetwork extends Environment<Basin, DiadromousFish
 	}
 
 
+	@Override
 	public Map<Basin, Double> getNeighboursWithDistance(Basin basin) {
 		int j = getColumn(basin.getId());
 		if (j == 0) // that means for a river basin
@@ -111,11 +113,13 @@ public abstract class GridBasinNetwork extends Environment<Basin, DiadromousFish
 	}
 
 
+	@Override
 	public Basin[] getBasins() {
 		return grid;
 	}
 
 
+	@Override
 	public RiverBasin getRiverBasin(String basinName) {
 		RiverBasin basin = null;
 		for (int i = 0; i < nbBasin; i++) {
@@ -141,6 +145,7 @@ public abstract class GridBasinNetwork extends Environment<Basin, DiadromousFish
 	}
 
 
+	@Override
 	public RiverBasin[] getRiverBasins() {
 		RiverBasin[] riverGrid = new RiverBasin[nbBasin];
 
@@ -163,6 +168,7 @@ public abstract class GridBasinNetwork extends Environment<Basin, DiadromousFish
 	}
 
 
+	@Override
 	public String[] getRiverBasinNames() {
 		RiverBasin[] riverBasins = getRiverBasins();
 		String[] names = new String[riverBasins.length];
@@ -173,6 +179,7 @@ public abstract class GridBasinNetwork extends Environment<Basin, DiadromousFish
 	}
 
 
+	@Override
 	public int[] getFinalStates() {
 		// TODO ask to Nicolas to be able to use ReflectUtils with arguments
 
@@ -193,6 +200,7 @@ public abstract class GridBasinNetwork extends Environment<Basin, DiadromousFish
 	}
 
 
+	@Override
 	public int[] getFinalStatesWithStochasticity() {
 		// TODO ask to Nicolas to be able to use ReflectUtils with arguments
 
@@ -213,6 +221,7 @@ public abstract class GridBasinNetwork extends Environment<Basin, DiadromousFish
 	}
 
 
+	@Override
 	public int[] getFinalStatesForKappa() {
 		// TODO ask to Nicolas to be able to use ReflectUtils with arguments
 
@@ -230,6 +239,7 @@ public abstract class GridBasinNetwork extends Environment<Basin, DiadromousFish
 	}
 
 
+	@Override
 	public double[] getMeanLastRecruitments() {
 		RiverBasin[] riverBasins = getRiverBasins();
 		double[] data = new double[riverBasins.length];
@@ -240,6 +250,7 @@ public abstract class GridBasinNetwork extends Environment<Basin, DiadromousFish
 	}
 
 
+	@Override
 	public double[] getProbOfNonNulRecruitmentDuringLastYears() {
 		RiverBasin[] riverBasins = getRiverBasins();
 		double[] data = new double[riverBasins.length];
@@ -258,6 +269,7 @@ public abstract class GridBasinNetwork extends Environment<Basin, DiadromousFish
 	}
 
 
+	@Override
 	public double[] getFinalProbabilityOfPresence() { // function computed for obtain probability of presence in 2100
 														// for the allis shad case study
 		RiverBasin[] riverBasins = getRiverBasins();
@@ -270,6 +282,7 @@ public abstract class GridBasinNetwork extends Environment<Basin, DiadromousFish
 	}
 
 
+	@Override
 	public double getMeanLastRecruitmentsBV2() {
 		RiverBasin[] riverBasins = getRiverBasins();
 		double data = riverBasins[1].getLastRecruitments().getMean();
@@ -277,6 +290,7 @@ public abstract class GridBasinNetwork extends Environment<Basin, DiadromousFish
 	}
 
 
+	@Override
 	public double[] getMeanLastRecruitmentExpectations() {
 		RiverBasin[] riverBasins = getRiverBasins();
 		double[] data = new double[riverBasins.length];
@@ -287,6 +301,7 @@ public abstract class GridBasinNetwork extends Environment<Basin, DiadromousFish
 	}
 
 
+	@Override
 	public double[] getGeoMeansLastRecsOverProdCaps() {
 		// TODO ask to Nicolas to be able to use ReflectUtils with arguments
 
@@ -299,6 +314,7 @@ public abstract class GridBasinNetwork extends Environment<Basin, DiadromousFish
 	}
 
 
+	@Override
 	public double[] getMeanLastPercOfAut() { // give the mean of the last % of autochtone spawners
 		RiverBasin[] riverBasins = getRiverBasins();
 		double[] data = new double[riverBasins.length];
@@ -309,6 +325,7 @@ public abstract class GridBasinNetwork extends Environment<Basin, DiadromousFish
 	}
 
 
+	@Override
 	public long[] getYearsOfFirstNonNulRep() {
 		RiverBasin[] riverBasins = getRiverBasins();
 		long[] data = new long[riverBasins.length];
@@ -319,6 +336,7 @@ public abstract class GridBasinNetwork extends Environment<Basin, DiadromousFish
 	}
 
 
+	@Override
 	public long[] getYearsOfLastNulRep() {
 		RiverBasin[] riverBasins = getRiverBasins();
 		long[] data = new long[riverBasins.length];
@@ -332,6 +350,7 @@ public abstract class GridBasinNetwork extends Environment<Basin, DiadromousFish
 	/**
 	 * @return the yearOfTheBegin
 	 */
+	@Override
 	public long getYearOfTheBegin() {
 		return yearOfTheBegin;
 	}
@@ -355,15 +374,18 @@ public abstract class GridBasinNetwork extends Environment<Basin, DiadromousFish
 	}
 
 
+	@Override
 	public abstract Map<String, Double[]> getTemperaturesBasin(long year);
 
 
+	@Override
 	public abstract String getTemperatureCatchmentFile();
 
 
 	/**
 	 * @return the time
 	 */
+	@Override
 	public Time getTime() {
 		return time;
 
diff --git a/src/main/java/environment/RIOBasinNetwork.java b/src/main/java/environment/RIOBasinNetwork.java
index 382149f89d152c08835748388410de6a89654c9f..c31eaa7fea795e526b99224a3154d7d8dc842ec5 100644
--- a/src/main/java/environment/RIOBasinNetwork.java
+++ b/src/main/java/environment/RIOBasinNetwork.java
@@ -85,7 +85,6 @@ public abstract class RIOBasinNetwork extends BasinNetwork {
 	}
 
 
-	@Override
 	public InshoreBasin[] getInshoreBasins() {
 		return inshoreBasins;
 	}
@@ -106,7 +105,6 @@ public abstract class RIOBasinNetwork extends BasinNetwork {
 	}
 
 
-	@Override
 	@Deprecated
 	public Basin getAssociatedOffshoreBasin(Basin basin) {
 		Basin associatedBasin = null;
@@ -180,7 +178,6 @@ public abstract class RIOBasinNetwork extends BasinNetwork {
 	}
 
 
-	@Override
 	public InshoreBasin getInshoreBasin(String basinName) {
 		InshoreBasin basin = null;
 		for (InshoreBasin inshoreBasin : inshoreBasins) {
diff --git a/src/main/java/environment/RIOBasinNetworkWithContinent.java b/src/main/java/environment/RIOBasinNetworkWithContinent.java
index a16b76f95541f75959fa8e3ab616b85322c1e947..4e52acd97797f876377e44a5fccb4c9063ade4c0 100644
--- a/src/main/java/environment/RIOBasinNetworkWithContinent.java
+++ b/src/main/java/environment/RIOBasinNetworkWithContinent.java
@@ -600,12 +600,4 @@ public class RIOBasinNetworkWithContinent extends RIOBasinNetwork {
 	public Map<String, Path2D.Double> getMapContinent() {
 		return mapContinent;
 	}
-
-
-	@Override
-	@Deprecated
-	public Basin getAssociatedInshoreBasin(Basin basin) {
-		// TODO Auto-generated method stub
-		return null;
-	}
 }
diff --git a/src/main/java/species/DisperseAndMigrateToRiver.java b/src/main/java/species/DisperseAndMigrateToRiver.java
index 44f8c90a96a9acdacea9c968df5387a9fac283dd..27ca49bc4a9f74d7ca3535a13bae54948c181ba1 100644
--- a/src/main/java/species/DisperseAndMigrateToRiver.java
+++ b/src/main/java/species/DisperseAndMigrateToRiver.java
@@ -17,6 +17,7 @@ import fr.cemagref.simaqualife.kernel.processes.AquaNismsGroupProcess;
 import miscellaneous.BinomialForSuperIndividualGen;
 
 @ServiceProvider(service = AquaNismsGroupProcess.class)
+@Deprecated
 public class DisperseAndMigrateToRiver extends DisperseAndMigrateToRiverBasic {
 
 	private double pHoming = 0.5;
diff --git a/src/main/java/species/DisperseAndMigrateToRiverStandardization.java b/src/main/java/species/DisperseAndMigrateToRiverStandardization.java
index 769a0ff5633e854989bb2a1bb9eb9a7e8fd98da1..47aae48ce8ac9f748ee600de955c81ff0f0ecb64 100644
--- a/src/main/java/species/DisperseAndMigrateToRiverStandardization.java
+++ b/src/main/java/species/DisperseAndMigrateToRiverStandardization.java
@@ -23,6 +23,7 @@ import fr.cemagref.simaqualife.kernel.util.TransientParameters.InitTransientPara
 import fr.cemagref.simaqualife.pilot.Pilot;
 import miscellaneous.BinomialForSuperIndividualGen;
 
+@Deprecated
 @ServiceProvider(service = AquaNismsGroupProcess.class)
 public class DisperseAndMigrateToRiverStandardization extends AquaNismsGroupProcess<DiadromousFish, DiadromousFishGroup> {
 
@@ -129,7 +130,7 @@ public class DisperseAndMigrateToRiverStandardization extends AquaNismsGroupProc
 				// distance from departure basin to destination basin
 				Map<RiverBasin, Double> distanceBasinFromDeparture = basinDistancesPerBasin.get(departure);
 
-				RiverBasin homingDestination = (RiverBasin) bn.getAssociatedRiverBasin(departure);
+				RiverBasin homingDestination = bn.getAssociatedRiverBasin(departure);
 
 				ListIterator<DiadromousFish> fishIterator = departure.getFishs(group).listIterator();
 				while (fishIterator.hasNext()) {
diff --git a/src/main/java/species/WriteNutrientExportFluxes.java b/src/main/java/species/WriteNutrientExportFluxes.java
index b9c863a62c56b0d317701c14f313c2629d4936ae..3ab9320febddb43a3855d50a240ec36d0cb730fe 100644
--- a/src/main/java/species/WriteNutrientExportFluxes.java
+++ b/src/main/java/species/WriteNutrientExportFluxes.java
@@ -14,6 +14,7 @@ import com.thoughtworks.xstream.io.xml.DomDriver;
 
 import fr.cemagref.simaqualife.kernel.processes.AquaNismsGroupProcess;
 
+@Deprecated
 public class WriteNutrientExportFluxes extends AquaNismsGroupProcess<DiadromousFish, DiadromousFishGroup> {
 
 	private String fileName = "nutrientExportFluxes";
diff --git a/src/main/java/species/WriteNutrientImportFluxes.java b/src/main/java/species/WriteNutrientImportFluxes.java
index 5418cf1bbdeca05423585abd04a63c2354c83dbd..127f05a169d81268421e2d69e4f38e3c0039b772 100644
--- a/src/main/java/species/WriteNutrientImportFluxes.java
+++ b/src/main/java/species/WriteNutrientImportFluxes.java
@@ -14,6 +14,7 @@ import com.thoughtworks.xstream.io.xml.DomDriver;
 
 import fr.cemagref.simaqualife.kernel.processes.AquaNismsGroupProcess;
 
+@Deprecated
 public class WriteNutrientImportFluxes extends AquaNismsGroupProcess<DiadromousFish, DiadromousFishGroup> {
 
 	private String fileName = "fluxes";