public void addParticle(String type) {
        if (particleList.size() > 10000) {
            //Sorry
            //System.out.println("10k particles reached");
            return;
        }

        Particle px;
        switch (type) {
            case "OH-":
                px = new Hydroxide(r.nextDouble() * Xsz, r.nextDouble() * Ysz, r.nextGaussian());
                break;
            case "H+":
                px = new Hydron(r.nextDouble() * Xsz, r.nextDouble() * Ysz, r.nextGaussian());
                break;
            case "A-":
                px = new Anion(r.nextDouble() * Xsz, r.nextDouble() * Ysz, r.nextGaussian());
                break;
            case "HA":
                px = new Anion(r.nextDouble() * Xsz, r.nextDouble() * Ysz, r.nextGaussian());
                px.setSlave(new Hydron(r.nextDouble() * Xsz, r.nextDouble() * Ysz, r.nextGaussian()));
                break;
            default:
                System.out.println("Unknown type: " + type);
                return;
        }
        eki += px.getM() * sqr(px.getV()) / 2;
        p.getChildren().add(px);
        particleList.add(px);
        if (px.hasSlave()) {
            p.getChildren().add(px.getSlave());
            particleList.add(px.getSlave());
        }
        rect.toBack();

    }