public synchronized TrackedTorrent announce(Torrent newTorrent) {
		TrackedTorrent torrent = this.torrents.get(newTorrent.getHexInfoHash());

		if (torrent != null) {
			logger.warn("Tracker already announced torrent for '" +
					torrent.getName() + "' with hash " +
					torrent.getHexInfoHash() + ".");
			return torrent;
		} else {
			torrent = new TrackedTorrent(newTorrent);
		}

		this.torrents.put(torrent.getHexInfoHash(), torrent);
		logger.info("Registered new torrent for '" + torrent.getName() + "' " +
			   "with hash " + torrent.getHexInfoHash());
		return torrent;
	}