void registerActions() {
		//Setup the components necessary to register the Problem Solver's Actions with the Directory Facilitator
		DFAgentDescription dfd = new DFAgentDescription();
		ServiceDescription sd = null;
		//Set the agent name for the DFD
		dfd.setName(this.agent.getAID());
		
		//Iterate over the actions and register each one
		Iterator it = this.actions.keySet().iterator();
	    while (it.hasNext()) {	    	
	    	//Retrieve the Key (String) and Value (Action)
	    	String key = (String) it.next();
	        Action value = (Action) this.actions.get(key);
	        
	        //Create the Service Description for the Action
	        sd = new ServiceDescription();
	        sd.setType(value.getName());
	        sd.setName(this.agent.getName());
	        sd.setOwnership(value.getOwnership());
	        //Add the Service Description to the DFD
	        dfd.addServices(sd);
	        
	        //Output to console - debugging
	        System.out.println(key + " = " + this.actions.get(key));
	        
	    }
	    
	    //Try to register the Service Descriptions with the DF
	    try {
	    	DFService.register(this.agent, dfd);
	    } catch (FIPAException e) {
	    	myLogger.log(Logger.SEVERE, "Agent "+this.agent.getLocalName()+" - Cannot register with DF", e);
	    	//Destroy the agent since it couldn't register it's capabilities
			this.agent.doDelete();
	    }
	}