public boolean isAnswerCorrect() {
		boolean result = false;
		final ArrayList<Integer> currentlySelected = new ArrayList<Integer>();

		// find the option selected
		for (int x = 0; x < _checkBoxOptions.size(); x++) {
			if (_checkBoxOptions.get(x).isSelected()) {
				currentlySelected.add(x);
			}
		}

		if (currentlySelected.size() == 0) {
			setAnswerLabel("No option selected, please select option");
			result = false;
		} else {
			int numCorrects = 0;
			// act on the option selected
			for (int x = 0; x < currentlySelected.size(); x++) {
				for (int y = 0; y < _checkBoxQuestionData.getNumOfAnswers(); y++) {
					if (_checkBoxOptions.get(currentlySelected.get(x)).getText().toString().equals(_checkBoxQuestionData.getAnswer(y).toString())) {
						_checkBoxOptions.get(currentlySelected.get(x)).setBackground(Color.green);
						++numCorrects;
						break;
					}
				}
			}

			_difficultyLabel.setText(new Integer(_checkBoxQuestionData.getDifficulty()).toString());
			_totalAnsweredLabel.setText(new Integer(_checkBoxQuestionData.getTotalTimesAnswered()).toString());
			if (numCorrects == _checkBoxQuestionData.getNumOfAnswers() && numCorrects == currentlySelected.size()) {
				setAnswerLabel("CORRECT");
				_checkBoxQuestionData.setCorrectlyAnswered();
				_session.setCorrectlyAnswered();
				for (int x = 0; x < _checkBoxOptions.size(); x++) {
					_checkBoxOptions.get(x).setEnabled(false);
				}
				result = true;
			} else {
				setAnswerLabel("INCORRECT");
				_checkBoxQuestionData.setIncorrectlyAnswered();
				_session.setIncorrectlyAnswered();
				result = false;
			}
		}

		this.updatePanel();

		return result;
	}