val r = new Random(); val rand = () => r.nextDouble();