public void listCatalogs(String org) {
		this.vccPreCheck();

		Organization orgObj = this.getOrganization(org);

		try {
			Formatter.printInfoLine("Catalogs:\n");
			for (ReferenceType catalogRef : orgObj.getCatalogRefs()) {
				Catalog catalog = Catalog.getCatalogByReference(this.vcc, catalogRef);
				Formatter.printInfoLine(String.format("----\n%-20s - %s", catalogRef.getName(), catalog.getResource().getDescription()));

				List<CatalogItem> vapps = new ArrayList<CatalogItem>();
				List<CatalogItem> media = new ArrayList<CatalogItem>();
				for (ReferenceType itemRef : catalog.getCatalogItemReferences()) {
					CatalogItem item = CatalogItem.getCatalogItemByReference(this.vcc, itemRef);
					ReferenceType ref = item.getEntityReference();

					if (ref.getType().equals(vCloudConstants.MediaType.VAPP_TEMPLATE)) {
						vapps.add(item);
					} else if (ref.getType().equals(vCloudConstants.MediaType.MEDIA)) {
						media.add(item);
					}
				}

				Formatter.printInfoLine("\tvApps:");
				for (CatalogItem item : vapps) {
					Formatter.printInfoLine(String.format("\t\t%-20s - %s", item.getReference().getName(), item.getResource().getDescription().replace("\n", ", ")));
				}
				Formatter.printInfoLine("\tvMedia:");
				for (CatalogItem item : media) {
					Formatter.printInfoLine(String.format("\t\t%-20s - %s", item.getReference().getName(), item.getResource().getDescription().replace("\n", ", ")));
				}
			}
		} catch (VCloudException e) {
			Formatter.printErrorLine("An error occured while retrieving Catalogs");
			Formatter.printErrorLine(e.getLocalizedMessage());
			System.exit(1);
		}
	}