ArrayList<seed> hexPack(double distToWall, double width, double length, ArrayList<Pair> treeLst) {
	  ArrayList<seed> seedLst = new ArrayList<seed>();
	  boolean canFitMore = true;
	  boolean treeCollision = false;
	  double xIter = distToWall;
	  int isEven = 1;
	  double yIter = distToWall;
	  while( canFitMore ) {
		  // check if colliding with tree?
		  for(Pair tree : treeLst) {
			  if( Math.sqrt( Math.pow((tree.x - xIter), 2) + Math.pow((tree.y - yIter),2)) < distToTree ) {
				  treeCollision = true;
			  }
		  }
		  if( ! treeCollision ) {
			  seedLst.add(new seed(xIter, yIter, rnd.nextInt(2)==0 ? true : false));
		  }
		  // increment x
		  treeCollision = false;
		  if( xIter + distToSeed < width - (distToWall) ) {
			  xIter += distToSeed;
		  } else {
			  //canFitMore = false;
			  yIter += distToSeed*Math.sqrt(3.0)/2;
			  isEven *= -1;
			  if( isEven == 1 ) {
				  xIter = distToWall;
			  } else {
				  xIter = distToSeed;
			  }
			  if( yIter > length - (distToWall)) {
				  canFitMore = false;
			  }  
		  }
	  }
	  return seedLst;
  }