@Override
 public void addBehavior(final IStatement c) {
   if (c instanceof WeightedTaskStatement) {
     tasks.add((WeightedTaskStatement) c);
   } else {
     super.addBehavior(c);
   }
 }
 @Override
 public Object executeOn(final IScope scope) throws GamaRuntimeException {
   // We let inits, reflexes run
   super.executeOn(scope);
   WeightedTaskStatement active = chooseTask(scope);
   if (active != null) {
     return active.executeOn(scope);
   }
   return null;
 }
 @Override
 protected void clearBehaviors() {
   super.clearBehaviors();
   tasks.clear();
 }