public void mate(){
        boolean impregnate = false;
        Organism partner = null;
        for(int o = 0; o < environment.getOrganisms().size(); o ++){
//        for(Organism o : environment.getOrganisms()){
            if(environment.getOrganisms().get(o).getSpecies () == getSpecies()){
            if(environment.getOrganisms().get(o) != this){
                  if(Math.hypot(environment.getOrganisms().get(o).getX()-getX(), environment.getOrganisms().get(o).getY()-getY())<30){
                      if(shouldMate(environment.getOrganisms().get(o))){
                          impregnate = true;
                          partner=environment.getOrganisms().get(o);
                          if(environment.getOrganisms().get(o).wombs.size()>0){
                               environment.getOrganisms().get(o).wombs.get(0).impregnate(this);

                          }
                          break;

                      }
                  }
            }

        }
        }
        if(impregnate && partner != null){
            if(wombs.size()>0){
                wombs.get(0).impregnate(partner);
            }
//         birthOffspring();
        }
    }