public void update(double mod){
        for (int i = 0; i < points.size(); i++){
            if (!points.get(i).isFrozen()){
                points.get(i).setY(points.get(i).getY()+mod*speed);
                //freeze point if it reaches the bottom
                if (points.get(i).getY() > maxHeight){
                    points.get(i).freeze();
                    points.get(i).setY(maxHeight);
                }
                //check other points
                for (int j = 0; j < points.size(); j++){
                    if (j != i){ //don't check current point
                        //if (isCollision(points.get(i),radius,points.get(j),radius) && points.get(j).isFrozen()){
                        //    points.get(i).freeze();
                        //}
                        if (j < points.size()-1){
                            if (isCollision(
                                    points.get(j).getX(),points.get(j).getY(),
                                    points.get(j+1).getX(), points.get(j+1).getY(),
                                    points.get(i).getX(), points.get(i).getY(), radius) &&
                                    points.get(j).isFrozen() && points.get(j+1).isFrozen()){
                                points.get(i).freeze();
                            }
                        }
                    }
                }
            }
        }
    }