public String execute() throws CrashException {
		try {
			Registry registry = LocateRegistry.getRegistry(destPeer.IPaddr, destPeer.serverPortno);
			ServerSideInterface stub = (ServerSideInterface) registry.lookup("ServerSide");
			Set<Byte> crashedOrds;

			synchronized (sourcePeer) {

				if (timer != null) {
					//timerTask.cancel();
					timer.schedule(timerTask, delay); // delay is in milliseconds
				}

				crashedOrds = sourcePeer.getCrashedPeerOrds();
			}

			return stub.word(id, word, remainingTimeMilliseconds, winnerOrd, crashedOrds);

		} catch (java.rmi.ConnectException e) {
			// Prova a inviare a quello dopo ancora...
			System.out.println("Msg Word Fallito. QUESTO PEER E' MORTO! Provo a inviare al Peer dopo.");
			sendToNext();
		} catch (java.rmi.ConnectIOException e) {
			// Prova a inviare a quello dopo ancora...
			System.out.println("Msg Word Fallito. QUESTO PEER E' MORTO! Provo a inviare al Peer dopo.");
			sendToNext();
		} catch (java.rmi.UnmarshalException e) {
			// Prova a inviare a quello dopo ancora...
			System.out.println("Msg Word Fallito. QUESTO PEER E' MORTO! Provo a inviare al Peer dopo.");
			sendToNext();
		} catch (Exception e) {
			e.printStackTrace();
			System.exit(1);
		}
		throw new CrashException("Impossibile inviare messaggio!");
	}