private void processMessage(String message)
	{
		if (message.equals(TOOLKIT_SETTINGS_REQUEST))
		{
			sendToolkitSettings();
		}
		else if (message.startsWith("<toolkit"))
		{
			processToolkitSettings(message);
		}
		else if (remoteToolkitSettings == null)
		{
			sendCommand(TOOLKIT_SETTINGS_REQUEST);
		}
		else if (message.equals(CHALLENGE_REQUEST))
		{
			// partner is requesting a challenge
			networkSubState = BaseStateEnum.Network_Make_A_Challenge;
		}
		else if (message.equals(HELP_REQUEST))
		{
			// partner is asking for help - ACCEPT THE CHALLENGE
			networkSubState = BaseStateEnum.Network_Help;
		}
		else if (message.equals(SAVE_REQUEST))
		{
			if (BaseStateEnum.Network_Take_A_Challenge.equals(networkSubState))
			{
				// partner has made a challenge for you to solve
				networkSubState = BaseStateEnum.Network_Solve;
			}
			else
			{
				// partner is saving a solution
				networkSubState = BaseStateEnum.Network_Try;
			}
		}
		else if (message.startsWith("<event"))
		{
			processEvent(message);
		}
	}