@SuppressWarnings("serial")
	BodyPanel(Model model, ModelControl mControl) {
		super(true);
		this.control = mControl;
		
		model.addBodiesChangeListener(new PropertyChangeListener() {
			public void propertyChange(PropertyChangeEvent evt) {
				// if the state change is the one we're interested in...
				if (evt.getPropertyName().equals(Model.BODIES)) {
					bodyField.setText(evt.getNewValue().toString());
				}
			}
		});
		
		addButton = new Button(new AbstractAction("Add") {
			public void actionPerformed(ActionEvent ae) {
				if (control != null) {
					control.arrayAdditionActionPerformed(ae);
				} else {
					System.out.println("addFAIL");
				}
			}
		}, "src\\com\\amoneim\\Images\\add.png", "src\\com\\amoneim\\Images\\r_add.png");
		
		minusButton = new Button(new AbstractAction("Minus") {
			public void actionPerformed(ActionEvent ae) {
				if (control != null) {
					bodyField.setText(control.arraySubtractionActionPerformed(ae));
					
				} else {
					System.out.println("addFAIL");
				}
			}
		}, "src\\com\\amoneim\\Images\\minus.png", "src\\com\\amoneim\\Images\\r_minus.png");
		
		bodyField.addKeyListener(new KeyListener() {
			
			@Override
			public void keyPressed(KeyEvent e) {
				if (control != null) {
					if (e.getKeyCode() == KeyEvent.VK_ENTER) {
						if (bodyField.getText().isEmpty() || bodyField.getText().equals("EMPTY")) {
							bodyField.setText("EMPTY");
						} else {
							control.arraySetActionPerformed(e, Integer.parseInt(bodyField.getText()));
						}
					}
				} else {
					System.out.println("setFAIL");
				}
			}
			
			public void keyReleased(KeyEvent e) {}
			
			public void keyTyped(KeyEvent e) {}
		});
		
		init();
	}