private String statusDetailed() {
		StringBuilder sb = new StringBuilder();
		
		sb.append("Hosts:\n");
		for (Host host : hosts.values())
			sb.append("\t" + host.getName() + " on " + host.getSocket() + (host.isRunning() ? "" : "(inactive)") + "\n");
		
		for (Map.Entry<String, Map<String, Service>> entry : services.entrySet()) {
			sb.append(entry.getKey() + " Services:\n");
			for (Service service : entry.getValue().values())
				sb.append("\t" + (service.getKey().length() == 0 ? "*" : service.getKey()) + " to " + service.getAddress() + "\n");
		}

		sb.append("Connections:\n");
		for (Connection connection : connections)
			sb.append("\t" + connection.getSocket() + " to " + connection.getTarget() + "\n");
		
		return sb.toString();
	}