public cellPicker(){
	cellpick = new JComboBox(Cells);
	MBOTPick = new JComboBox(MBOTCells);
	jack = new JLabel("Born");
	jill = new JLabel("Survives");
	rulab = new JLabel();
	//labels for wolfram rules
	wlab[0] = new JLabel("111");
	wlab[1] = new JLabel("110");
	wlab[2] = new JLabel("101");
	wlab[3] = new JLabel("100");
	wlab[4] = new JLabel("011");
	wlab[5] = new JLabel("010");
	wlab[6] = new JLabel("001");
	wlab[7] = new JLabel("000");
	wrlab = new JLabel("Wolfram Rule: 0");
	//Wolfram directions
	orlabel = new JLabel("Direction:");
	wdirs[0] = new JRadioButton("|"); wdirs[1] = new JRadioButton("/");
	wdirs[2] = new JRadioButton("--"); wdirs[3] = new JRadioButton("\\");
	ButtonGroup orients = new ButtonGroup(); orients.add(wdirs[0]); orients.add(wdirs[1]);
	orients.add(wdirs[2]); orients.add(wdirs[3]);wdirs[0].setSelected(true);
	// 8 directions
	dirlabel = new JLabel("Direction:");
	dirs[0] = new JRadioButton("Up"); dirs[1] = new JRadioButton("U-R"); dirs[2] = new JRadioButton("R"); dirs[3] = new JRadioButton("L-R");
	dirs[4] = new JRadioButton("Down"); dirs[5] = new JRadioButton("L-L"); dirs[6] = new JRadioButton("L"); dirs[7] = new JRadioButton("U-L");
	ButtonGroup directs = new ButtonGroup(); directs.add(dirs[0]);directs.add(dirs[1]);directs.add(dirs[2]);directs.add(dirs[3]);directs.add(dirs[4]);
	directs.add(dirs[5]);directs.add(dirs[6]);directs.add(dirs[7]); dirs[0].setSelected(true);
	
	// age and fade options
	opts[0] = new Checkbox("Ages"); 
	opts[1] = new Checkbox("Fades");
	fadeslider = new JSlider(1,1024);
	fadelabel = new JLabel();
	
	//maturity option
	matslider = new JSlider(1,512);
	matlabel = new JLabel();
	
	// born
	opts[2] = new Checkbox("0"); opts[3] = new Checkbox("1"); opts[4] = new Checkbox("2"); 
	opts[5] = new Checkbox("3"); opts[6] = new Checkbox("4"); opts[7] = new Checkbox("5"); 
	opts[8] = new Checkbox("6"); opts[9] = new Checkbox("7"); opts[10] = new Checkbox("8"); 
	// survives
	opts[11] = new Checkbox("0"); opts[12] = new Checkbox("1"); opts[13] = new Checkbox("2"); 
	opts[14] = new Checkbox("3"); opts[15] = new Checkbox("4"); opts[16] = new Checkbox("5"); 
	opts[17] = new Checkbox("6"); opts[18] = new Checkbox("7"); opts[19] = new Checkbox("8"); 
	
	//Wolfram rules
	opts[20] = new Checkbox(); opts[21] = new Checkbox(); opts[22] = new Checkbox(); opts[23] = new Checkbox();
	opts[24] = new Checkbox(); opts[25] = new Checkbox(); opts[26] = new Checkbox(); opts[27] = new Checkbox();
	// Mirror 
	opts[28] = new Checkbox("Mirror Cell");
	mirbutt = new JButton("Set Mirror");
	refsetbutt = new JButton("Set Reference");
	//Any & All
	opts[29] = new Checkbox("Any");
	opts[30] = new Checkbox("All");
	
	//Expansion Factor
	xfslider = new JSlider(1,8);
	xfind = new JLabel("");
	xflabel = new JLabel("Expansion Factor");
	
	//Input mode
	inmodlabel = new JLabel("Input Mode:");
	inm[0] = new JRadioButton("Void");
	inm[1] = new JRadioButton("Binary");
	inm[2] = new JRadioButton("Integer");
	inpmod = new ButtonGroup(); inpmod.add(inm[0]); inpmod.add(inm[1]); inpmod.add(inm[2]); inm[1].setSelected(true);
	
	
	GroupLayout cpLayout = new GroupLayout(this);
	cpLayout.setAutoCreateGaps(false);
	cpLayout.setAutoCreateContainerGaps(false);
	
	cpLayout.setHorizontalGroup(
		cpLayout.createParallelGroup(GroupLayout.Alignment.CENTER)
			.addComponent(cellpick)
			.addComponent(MBOTPick)
			// ages/fades
			.addGroup(cpLayout.createSequentialGroup()
				.addComponent(opts[0])
				.addComponent(opts[1])
				.addComponent(fadeslider)
				.addComponent(fadelabel))
				//maturity
			.addGroup(cpLayout.createSequentialGroup()
				.addComponent(matslider)
				.addComponent(matlabel))
				// MBOT rule
			.addGroup(cpLayout.createSequentialGroup()
				.addComponent(rulab))
				//MBOT born
			.addGroup(cpLayout.createSequentialGroup()
				.addComponent(jack)
				.addComponent(opts[2])
				.addComponent(opts[3])
				.addComponent(opts[4])
				.addComponent(opts[5])
				.addComponent(opts[6])
				.addComponent(opts[7])
				.addComponent(opts[8])
				.addComponent(opts[9])
				.addComponent(opts[10]))
				//MBOT survives
			.addGroup(cpLayout.createSequentialGroup()
				.addComponent(jill)
				.addComponent(opts[11])
				.addComponent(opts[12])
				.addComponent(opts[13])
				.addComponent(opts[14])
				.addComponent(opts[15])
				.addComponent(opts[16])
				.addComponent(opts[17])
				.addComponent(opts[18])
				.addComponent(opts[19]))
				// Wolfram rule number
			.addGroup(cpLayout.createParallelGroup()
				.addComponent(wrlab))
				// Wolfram rules
			.addGroup(cpLayout.createSequentialGroup()
				.addGroup(cpLayout.createParallelGroup()
					.addComponent(wlab[0])
					.addComponent(opts[20]))
				.addGroup(cpLayout.createParallelGroup()
					.addComponent(wlab[1])
					.addComponent(opts[21]))
				.addGroup(cpLayout.createParallelGroup()
					.addComponent(wlab[2])
					.addComponent(opts[22]))
				.addGroup(cpLayout.createParallelGroup()
					.addComponent(wlab[3])
					.addComponent(opts[23]))
				.addGroup(cpLayout.createParallelGroup()
					.addComponent(wlab[4])
					.addComponent(opts[24]))
				.addGroup(cpLayout.createParallelGroup()
					.addComponent(wlab[5])
					.addComponent(opts[25]))
				.addGroup(cpLayout.createParallelGroup()
					.addComponent(wlab[6])
					.addComponent(opts[26]))
				.addGroup(cpLayout.createParallelGroup()
					.addComponent(wlab[7])
					.addComponent(opts[27]))
					)
					// 4 orientations
			.addGroup(cpLayout.createSequentialGroup()
				.addComponent(orlabel)
				.addComponent(wdirs[0])
				.addComponent(wdirs[1])
				.addComponent(wdirs[2])
				.addComponent(wdirs[3])
				.addComponent(opts[29])
				.addComponent(opts[30]))
				// 8 directions
			.addGroup(cpLayout.createSequentialGroup()
				.addComponent(dirlabel)
				.addComponent(dirs[0])
				.addComponent(dirs[1])
				.addComponent(dirs[2])
				.addComponent(dirs[3]))
			.addGroup(cpLayout.createSequentialGroup()
				.addComponent(dirs[4])
				.addComponent(dirs[5])
				.addComponent(dirs[6])
				.addComponent(dirs[7]))
				// Mirror
			.addGroup(cpLayout.createSequentialGroup()
				.addComponent(opts[28])
				.addComponent(mirbutt)
				.addComponent(refsetbutt))
				//expansion Factor
			.addGroup(cpLayout.createSequentialGroup()
				.addComponent(xflabel)
				.addComponent(xfslider)
				.addComponent(xfind))
				//Input Mode
			.addComponent(inmodlabel)
			.addGroup(cpLayout.createSequentialGroup()
				.addComponent(inm[0])
				.addComponent(inm[1])
				.addComponent(inm[2]))
				);
				
	cpLayout.setVerticalGroup(
		cpLayout.createSequentialGroup()
			.addComponent(cellpick)
			.addComponent(MBOTPick)
			// ages/ fades
			.addGroup(cpLayout.createParallelGroup()
				.addComponent(opts[0])
				.addComponent(opts[1])
				.addComponent(fadeslider)
				.addComponent(fadelabel))
				// maturity
			.addGroup(cpLayout.createParallelGroup()
				.addComponent(matslider)
				.addComponent(matlabel))
				//MBOT rule
			.addGroup(cpLayout.createParallelGroup()
				.addComponent(rulab))
				//MBOT born
			.addGroup(cpLayout.createParallelGroup()
				.addComponent(jack)
				.addComponent(opts[2])
				.addComponent(opts[3])
				.addComponent(opts[4])
				.addComponent(opts[5])
				.addComponent(opts[6])
				.addComponent(opts[7])
				.addComponent(opts[8])
				.addComponent(opts[9])
				.addComponent(opts[10]))
				// MBOT survives
			.addGroup(cpLayout.createParallelGroup()
				.addComponent(jill)
				.addComponent(opts[11])
				.addComponent(opts[12])
				.addComponent(opts[13])
				.addComponent(opts[14])
				.addComponent(opts[15])
				.addComponent(opts[16])
				.addComponent(opts[17])
				.addComponent(opts[18])
				.addComponent(opts[19]))
				//Wolfram rule number
			.addGroup(cpLayout.createSequentialGroup()
				.addComponent(wrlab))
				// Wolfram rules
			.addGroup(cpLayout.createParallelGroup()
				.addGroup(cpLayout.createSequentialGroup()
					.addComponent(wlab[0])
					.addComponent(opts[20]))
				.addGroup(cpLayout.createSequentialGroup()
					.addComponent(wlab[1])
					.addComponent(opts[21]))
				.addGroup(cpLayout.createSequentialGroup()
					.addComponent(wlab[2])
					.addComponent(opts[22]))
				.addGroup(cpLayout.createSequentialGroup()
					.addComponent(wlab[3])
					.addComponent(opts[23]))
				.addGroup(cpLayout.createSequentialGroup()
					.addComponent(wlab[4])
					.addComponent(opts[24]))
				.addGroup(cpLayout.createSequentialGroup()
					.addComponent(wlab[5])
					.addComponent(opts[25]))
				.addGroup(cpLayout.createSequentialGroup()
					.addComponent(wlab[6])
					.addComponent(opts[26]))
				.addGroup(cpLayout.createSequentialGroup()
					.addComponent(wlab[7])
					.addComponent(opts[27]))
				)
				// 4 orientations
			.addGroup(cpLayout.createParallelGroup()
				.addComponent(orlabel)
				.addComponent(wdirs[0])
				.addComponent(wdirs[1])
				.addComponent(wdirs[2])
				.addComponent(wdirs[3])
				.addComponent(opts[29])
				.addComponent(opts[30]))
				//8 directions
			.addGroup(cpLayout.createParallelGroup()
				.addComponent(dirlabel)
				.addComponent(dirs[0])
				.addComponent(dirs[1])
				.addComponent(dirs[2])
				.addComponent(dirs[3]))
			.addGroup(cpLayout.createParallelGroup()
				.addComponent(dirs[4])
				.addComponent(dirs[5])
				.addComponent(dirs[6])
				.addComponent(dirs[7]))
				//mirror
			.addGroup(cpLayout.createParallelGroup()
				.addComponent(opts[28])
				.addComponent(mirbutt)
				.addComponent(refsetbutt))
			//Expansion Factor
			.addGroup(cpLayout.createParallelGroup()
				.addComponent(xflabel)
				.addComponent(xfslider)
				.addComponent(xfind))
			//Input Mode
			.addComponent(inmodlabel)
			.addGroup(cpLayout.createParallelGroup()
				.addComponent(inm[0])
				.addComponent(inm[1])
				.addComponent(inm[2]))
				);	
		setLayout(cpLayout);
		setPreferredSize(new Dimension(325,200));
		cellpick.setMaximumSize(new Dimension(250, 10));
		MBOTPick.setMaximumSize(new Dimension(250, 10));
		
		
		//init wolfram labels
		for (int aa = 0; aa < wlab.length; aa++){
			wlab[aa].setVisible(false);}
			wrlab.setVisible(false);
		//Wolfram direction
		for(int ac = 0; ac < wdirs.length; ac++){
			wdirs[ac].setVisible(false); wdirs[ac].addActionListener(this);}
		orlabel.setVisible(false);
		// 8 directions
		for(int ad = 0; ad < dirs.length; ad++){
			dirs[ad].setVisible(false); dirs[ad].addActionListener(this);}
			dirlabel.setVisible(false);
		//init opts	
		for (int ab = 0; ab < opts.length; ab++){
			opts[ab].setMaximumSize(new Dimension(10,10));opts[ab].setVisible(false);
			 opts[ab].addItemListener(this);}
		// MBOT stuff
		jack.setVisible(false); jill.setVisible(false); rulab.setVisible(false);
		
		//init fade components
		fadeslider.setVisible(false); fadeslider.setEnabled(false);fadeslider.setValue(256);
		fadeslider.addChangeListener(this); fadeslider.setMaximumSize(new Dimension(100,15));
		fadelabel.setVisible(false);fadelabel.setText(Integer.toString(fadeslider.getValue()));
		
		//set maturity components
		matslider.setVisible(false); matslider.setEnabled(false); matslider.setValue(1);
		matslider.addChangeListener(this); matslider.setMaximumSize(new Dimension(100,15));
		matlabel.setVisible(false); matlabel.setText("Maturity: "+Integer.toString(matslider.getValue()));
		
		//init mirror
		mirbutt.setVisible(false); mirbutt.setEnabled(false); mirbutt.addActionListener(this);
		refsetbutt.setVisible(false); refsetbutt.setEnabled(false); refsetbutt.addActionListener(this);
		
		//Expansion Factor
		xflabel.setVisible(false); xfslider.setVisible(false); xfslider.setEnabled(false);xfslider.setValue(1);
		 xfslider.addChangeListener(this);xfslider.setMaximumSize(new Dimension(100,15));
		xfind.setText("1"); xfind.setVisible(false);
		
		//Input Mode
		inmodlabel.setVisible(false);
		inm[0].setVisible(false); inm[0].addActionListener(this);inm[1].setVisible(false); inm[1].addActionListener(this);
		inm[2].setVisible(false); inm[2].addActionListener(this);
		
	//init MBOT picker
	MBOTPick.setVisible(false);
	if(ct == 2 || ct == 12){MBOTPick.setVisible(true); } else{MBOTPick.setVisible(false); }
	
	cellpick.addActionListener(this);
	MBOTPick.addActionListener(this);
	
	
	}