public String execute(JavaService js)
	{
		if(Model.getElectionOptions() == null) {
			return "Cannot count before options has been loaded.";
		}
		
		if (args.length < 2) {
			return invalidArguments;
		}

		long[] votes;
		switch (args[1]) {
		// adds the personal votes to the party votes
		case "sum":
			votes = countVotes(js);
			votes = addCandidateVotesToParties(votes, Model.getElectionOptions());
			return electionResultToString(votes, Model.getElectionOptions());
			// count the votes only
		case "clean":
			votes = countVotes(js);
			return electionResultToString(votes, Model.getElectionOptions());
			// Generate both RSA and ElGamal key pair
		case "both":
			votes = countVotes(js);
			StringBuilder sb = new StringBuilder();
			sb.append("Clean: \n");
			sb.append(electionResultToString(votes, Model.getElectionOptions()));
			sb.append("\n");
			sb.append("Sum: \n");
			votes = addCandidateVotesToParties(votes, Model.getElectionOptions());
			sb.append(electionResultToString(votes, Model.getElectionOptions()));
			return sb.toString();
		default:
			return invalidArguments;
		}
	}