			//for now we asssume two main devices: movemement and speech
			if (bioDevice.getName().equalsIgnoreCase("speechgen")) {

				devPanel.setBorder(
					BorderFactory.createTitledBorder("Voice Control Panel"));

				devC.weightx = 0;
				devC.weighty = 0;
				devC.fill = GridBagConstraints.BOTH;

				String[] voiceS = ((SpeechGenerator) bioDevice).getVoices();
				JComboBox combo = new JComboBox();
				combo.setName("Voices");
				combo.addItemListener(new ItemListener(){
					
					public void itemStateChanged(ItemEvent evt) {
						 JComboBox cb = (JComboBox)evt.getSource();
    
						 // Get the affected item
						 Object item = evt.getItem();
    
						 if (evt.getStateChange() == ItemEvent.SELECTED) {
							 System.out.println("Item "+item);
							((SpeechGenerator) bioDevice).setVoice((String)item);
						 } else if (evt.getStateChange() == ItemEvent.DESELECTED) {
							 // Item is no longer selected
						 }
					 }
				});

				combo.setEditable(true);
				int q = voiceS.length;
				for (int m = 0; m < q; m++) {
					combo.addItem(voiceS[m]);
				}
				//mainC.fill = GridBagConstraints.HORIZONTAL;
				devC.anchor = GridBagConstraints.WEST;
				devC.weightx = 0;
				add(devPanel, combo, devC, boxX, boxY, 1, 1);
				boxY += 1;

				combo = new JComboBox();
				combo.setEditable(true);
				combo.setName("Synthesizers");
				combo.addItemListener(new ItemListener(){
					
					public void itemStateChanged(ItemEvent evt) {
						 JComboBox cb = (JComboBox)evt.getSource();
    
						 // Get the affected item
						 Object item = evt.getItem();
    
						 if (evt.getStateChange() == ItemEvent.SELECTED) {
							System.out.println("Item "+item);
							((SpeechGenerator) bioDevice).setVoice((String)item);

						 } else if (evt.getStateChange() == ItemEvent.DESELECTED) {
							 // Item is no longer selected
						 }
					 }

				});

				List t = ((SpeechGenerator) bioDevice).getSynth();
				q = t.size();
				for (int m = 0; m < q; m++) {
					combo.addItem(t.get(m));
				}
				devC.weightx = 0;
				devC.anchor = GridBagConstraints.WEST;
				devC.fill = GridBagConstraints.HORIZONTAL;
				add(devPanel, combo, mainC, boxX, boxY, 1, 1);
				boxY += 1;

				//this is not cool but will do it till now
				devC.fill = GridBagConstraints.VERTICAL;
				JSlider slider;
				JPanel panel;
				for (int b = 0; b < 3; b++) {
					if (b == 0) {
						label = new JLabel("Volume", JLabel.LEFT);
						slider = createJSlider(0, 100, "Volume");
					} else if (b == 1) {
						label = new JLabel("Pitch", JLabel.LEFT);
						slider = createJSlider(0, 500, "Pitch");
					} else {
						label = new JLabel("Rate", JLabel.LEFT);
						slider = createJSlider(0, 500, "Rate");
					}
					slider.setMajorTickSpacing((slider.getMaximum()/10));
					slider.setMinorTickSpacing((slider.getMaximum()/25));


					slider.addChangeListener(new ChangeListener() {
						public void stateChanged(ChangeEvent evt) {
							JSlider slider = (JSlider) evt.getSource();

							if (!slider.getValueIsAdjusting()) {
								if ( slider.getName().equalsIgnoreCase("volume")){
									float value =(float) slider.getValue();
									((SpeechGenerator) bioDevice).setVolume(value);
								} else if ( slider.getName().equalsIgnoreCase("Pitch")){
									float value =(float) slider.getValue();
									((SpeechGenerator) bioDevice).setPitch(value);
								} else {
									float value =(float) slider.getValue();
									((SpeechGenerator) bioDevice).setRate(value);
									if (value > 90){
										((SpeechGenerator) bioDevice).speakLine("Hello, My name is Andreas");
									}
								}
							}
						}
					});
					panel = new JPanel();
					panel.setLayout(new GridLayout(2, 1));
					panel.add(label, "CENTER");
					panel.add(slider, "CENTER");
					devC.weighty = 0;
					devC.weightx = 0;
					devC.fill = GridBagConstraints.HORIZONTAL;
					panel.setBorder(
						BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));
					add(devPanel, panel, mainC, boxX, boxY + b, 8, 1);
				}

//				label = new JLabel("Command Line: type text to speak");
//				devC.weighty = 0;
//				devC.weightx = 0;
//				devC.fill = GridBagConstraints.NONE;
//				devC.anchor = GridBagConstraints.SOUTH;
//				add(devPanel, label, mainC, boxX, boxY, 8, 1);
//
//				boxY += 1;
//				JTextArea com = new JTextArea();
//				com.setFont(new Font("Serif", Font.ITALIC, 16));
//				com.setLineWrap(true);
//				com.setWrapStyleWord(true);
//				 JScrollPane scroll = new JScrollPane(com);
//				scroll.setVerticalScrollBarPolicy(
//								 JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
//				scroll.setPreferredSize(new Dimension(250, 250));
//				com.setEditable(true);
//				devC.weighty = 0;
//				devC.weightx = 0;
//				devC.fill = GridBagConstraints.BOTH;
//				scroll.setBorder(
//					BorderFactory.createEtchedBorder(EtchedBorder.RAISED));
//				add(devPanel, scroll, mainC, boxX, boxY, 8, 1);
//
//				boxY += 2;
//
//				//totalY += boxY;
//			}
//			
//			add(devPanel, mainC, totalX, totalY, 10,2);
//
//		}
//	
//		totalX = 0;
//		totalY +=2;
//
////		//adding the basic second panel -- again same as motor panel for now
////	/*
//		
//			c.fill = GridBagConstraints.NONE;
//			
//			JPanel panel = new JPanel();
//			JSlider slider = createJSlider(0, 100, "Volume");
//			label = new JLabel("Volume", JLabel.LEFT);
//			label.setSize(D);
//			c.gridx = 0;
//			c.gridy = GridBagConstraints.RELATIVE;
//			c.weightx = 20;
//			c.weighty = 1;
//			c.fill = GridBagConstraints.VERTICAL;
//			slider.addChangeListener(new ChangeListener() {
//				public void stateChanged(ChangeEvent evt) {
//					JSlider slider = (JSlider)evt.getSource();
//					
//					if (!slider.getValueIsAdjusting()) {
//						int value = slider.getValue();
//					}
//				}
//			});
//			panel.add(label);
//			panel.add(slider);
//			
//			
//			
//			panel = new JPanel();
//			slider = createJSlider(0, 100, "Speed");
//			label = new JLabel("Speed", JLabel.LEFT);
//			label.setSize(D);
//			
//			c.gridx = 0;
//			c.gridy = GridBagConstraints.RELATIVE;
//			c.weightx = 20;
//			c.weighty = 1;
//			gridbag.setConstraints(panel, c);
//			slider.addChangeListener(new ChangeListener() {
//				public void stateChanged(ChangeEvent evt) {
//					JSlider slider = (JSlider)evt.getSource();
//					
//					if (!slider.getValueIsAdjusting()) {
//						int value = slider.getValue();
//					}
//				}
//			});
//			panel.add(label);
//			panel.add(slider);
//			mainPanel.add(panel);
//			
//			panel = new JPanel();
//			slider = createJSlider(0, 100, "Pitch");
//			label = new JLabel("Pitch", JLabel.LEFT);
//			label.setSize(D);
//			c.gridx = 0;
//			c.gridy = GridBagConstraints.RELATIVE;
//			c.weightx = 20;
//			c.weighty = 1;
//			gridbag.setConstraints(panel, c);
//			slider.addChangeListener(new ChangeListener() {
//				public void stateChanged(ChangeEvent evt) {
//					JSlider slider = (JSlider)evt.getSource();
//					
//					if (!slider.getValueIsAdjusting()) {
//						int value = slider.getValue();
//					}
//				}
//			});
//			panel.add(label);
//			panel.add(slider);
//			mainPanel.add(panel);
//			
//			label = new JLabel("Motor Control", JLabel.LEFT);
//			label.setBorder(BorderFactory.createBevelBorder(BevelBorder.LOWERED));
//			label.setSize(D);
//			c.fill = GridBagConstraints.HORIZONTAL;
//			c.gridx = 0;
//			c.gridy = GridBagConstraints.RELATIVE;
//			c.weightx = 40;
//			c.weighty = 1;
//	
//			gridbag.setConstraints(label, c);
//			mainPanel.add(label);
//			
//			c.fill = GridBagConstraints.NONE;
//			
//			panel = new JPanel();
//			
//			// Create a list with some items
//			String[] items = {"A", "B", "C", "D"};
//			JList list = new JList(items);
//			JScrollPane scrollingList = new JScrollPane(list);
//			label = new JLabel("Device Selector", JLabel.LEFT);
//			label.setSize(D);
//			c.gridx = 0;
//			c.weightx = 20;
//			c.weighty = 50;
//			c.fill = GridBagConstraints.VERTICAL;
//			panel.add(label);
//			panel.add(scrollingList);
//			gridbag.setConstraints(panel, c);
//			mainPanel.add(panel);
//			
//			
//			panel = new JPanel();
//			slider = createJSlider(0, 100, "Speed");
//			label = new JLabel("Speed", JLabel.LEFT);
//			label.setSize(D);
//			c.gridx = 0;
//			c.gridy = GridBagConstraints.RELATIVE;
//			c.weightx = 20;
//			c.weighty = 50;
//			gridbag.setConstraints(panel, c);
//			slider.addChangeListener(new ChangeListener() {
//				public void stateChanged(ChangeEvent evt) {
//					JSlider slider = (JSlider)evt.getSource();
//					
//					if (!slider.getValueIsAdjusting()) {
//						int value = slider.getValue();
//					}
//				}
//			});
//			panel.add(label);
//			panel.add(slider);
//			mainPanel.add(panel);
//			
//			panel = new JPanel();
//			slider = createJSlider(0, 100, "Position");
//			label = new JLabel("Position", JLabel.LEFT);
//			label.setSize(D);
//			c.gridx = 0;
//			c.gridy = GridBagConstraints.RELATIVE;
//			c.weightx = 20;
//			c.weighty = 50;
//			gridbag.setConstraints(panel, c);
//			slider.addChangeListener(new ChangeListener() {
//				public void stateChanged(ChangeEvent evt) {
//					JSlider slider = (JSlider)evt.getSource();
//					
//					if (!slider.getValueIsAdjusting()) {
//						int value = slider.getValue();
//					}
//				}
//			});
//			panel.add(label);
//			panel.add(slider);
//			mainPanel.add(panel);
//			
//	*/
//	GridLayout gl = new GridLayout(1,2);
//	JPanel buttonPanel = new JPanel(gl, false);
//	buttonPanel.setBorder(
//		BorderFactory.createEtchedBorder(EtchedBorder.RAISED));
//
//	JButton button = new JButton("Close");
//	button.addActionListener(this);
//	buttonPanel.add(button);
//
//	button = new JButton("Help");
//	button.addActionListener(this);
//	buttonPanel.add(button);
//
//	mainC.fill = GridBagConstraints.HORIZONTAL;
//	mainC.weightx = 100;
//	mainC.weighty = 0;
//	add(buttonPanel, mainC, totalX, totalY, 10, 1);
	//}
