diff --git a/font-viewer/font-view.c b/font-viewer/font-view.c
index f6d4cb5..deb8c04 100644
--- a/font-viewer/font-view.c
+++ b/font-viewer/font-view.c
@@ -243,7 +243,7 @@ add_row(GtkWidget *table, gint *row_p,
         label = gtk_label_new (value);
         gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
         gtk_label_set_selectable (GTK_LABEL (label), TRUE);
-        gtk_widget_set_size_request (label, 200, -1);
+        gtk_widget_set_size_request (label, -1, 100);
         gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.0);
 
 
@@ -277,6 +277,46 @@ add_row(GtkWidget *table, gint *row_p,
     (*row_p)++;
 }
 
+
+/* grabbing the URLs from the metadata */
+static void
+open_url (GtkWidget *widget,
+	  gpointer   data)
+{
+    const gchar *link;
+    link = gtk_link_button_get_uri (GTK_LINK_BUTTON (widget));
+    gnome_url_show(link, NULL);
+}
+
+static void
+add_row_url(GtkWidget *table, gint *row_p,
+	const gchar *name, const gchar *value, gboolean multiline)
+{
+    gchar *bold_name;
+    GtkWidget *name_w, *value_w;
+
+    bold_name = g_strconcat("<b>", name, "</b>", NULL);
+    name_w = gtk_label_new(bold_name);
+    g_free(bold_name);
+    gtk_misc_set_alignment(GTK_MISC(name_w), 0.0, 0.0);
+    gtk_label_set_use_markup(GTK_LABEL(name_w), TRUE);
+
+    GtkWidget *button;
+    button = gtk_link_button_new (value);
+    g_signal_connect (button, "clicked",
+		      G_CALLBACK (open_url), NULL);
+
+    gtk_button_set_alignment(button, 0.0, 0.0);
+    value_w = button;
+
+    gtk_table_attach(GTK_TABLE(table), name_w, 0, 1, *row_p, *row_p + 1,
+		     GTK_FILL, GTK_FILL, 0, 0);
+    gtk_table_attach(GTK_TABLE(table), value_w, 1, 2, *row_p, *row_p + 1,
+		     GTK_FILL|GTK_EXPAND, GTK_FILL, 0, 0);
+
+    (*row_p)++;
+}
+
 static void
 add_face_info(GtkWidget *table, gint *row_p, const gchar *uri, FT_Face face)
 {
@@ -313,7 +353,8 @@ add_face_info(GtkWidget *table, gint *row_p, const gchar *uri, FT_Face face)
 
     if (FT_IS_SFNT(face)) {
 	gint i, len;
-	gchar *version = NULL, *copyright = NULL, *description = NULL;
+	gchar *version = NULL, *copyright = NULL, *description = NULL, *license = NULL, 
+          *license_url = NULL, *designer = NULL, *designer_url = NULL;
 
 	len = FT_Get_Sfnt_Name_Count(face);
 	for (i = 0; i < len; i++) {
@@ -344,6 +385,26 @@ add_face_info(GtkWidget *table, gint *row_p, const gchar *uri, FT_Face face)
 		description = g_convert(sname.string, sname.string_len,
 					"UTF-8", "UTF-16BE", NULL, NULL, NULL);
 		break;
+	    case TT_NAME_ID_LICENSE:
+		g_free(license);
+		license = g_convert(sname.string, sname.string_len,
+					"UTF-8", "UTF-16BE", NULL, NULL, NULL);
+		break;
+	    case TT_NAME_ID_LICENSE_URL:
+		g_free(license_url);
+		license_url = g_convert(sname.string, sname.string_len,
+					"UTF-8", "UTF-16BE", NULL, NULL, NULL);
+		break;
+	    case TT_NAME_ID_DESIGNER:
+		g_free(designer);
+		designer = g_convert(sname.string, sname.string_len,
+					"UTF-8", "UTF-16BE", NULL, NULL, NULL);
+		break;
+	    case TT_NAME_ID_DESIGNER_URL:
+		g_free(designer_url);
+		designer_url = g_convert(sname.string, sname.string_len,
+					"UTF-8", "UTF-16BE", NULL, NULL, NULL);
+		break;
 	    default:
 		break;
 	    }
@@ -355,16 +416,42 @@ add_face_info(GtkWidget *table, gint *row_p, const gchar *uri, FT_Face face)
 	if (copyright) {
 	    add_row(table, row_p, _("Copyright:"), copyright, TRUE, FALSE);
 	    g_free(copyright);
-	}
-	if (description) {
+	} 
+   if (description) {
 	    add_row(table, row_p, _("Description:"), description, TRUE, TRUE);
 	    g_free(description);
 	}
+	if (license) {
+	    add_row(table, row_p, _("License"), license, TRUE, FALSE);
+	    g_free(license);
+	}
+	if (license_url) {
+	    add_row_url(table, row_p, (" "), license_url, FALSE);
+	    g_free(license_url);
+	}
+	if (designer) {
+	    add_row(table, row_p, _("Designers"), designer, FALSE, FALSE);
+	    g_free(designer);
+	}
+		if (designer_url) {
+	    add_row_url(table, row_p, _(" "), designer_url, FALSE);
+	    g_free(designer_url);
+	}
     } else if (FT_Get_PS_Font_Info(face, &ps_info) == 0) {
 	if (ps_info.version && g_utf8_validate(ps_info.version, -1, NULL))
 	    add_row(table, row_p, _("Version:"), ps_info.version, FALSE, FALSE);
 	if (ps_info.notice && g_utf8_validate(ps_info.notice, -1, NULL))
+	    add_row(table, row_p, _("Description:"), ps_info.notice, FALSE, FALSE);
+    if (ps_info.notice && g_utf8_validate(ps_info.notice, -1, NULL))
 	    add_row(table, row_p, _("Copyright:"), ps_info.notice, TRUE, FALSE);
+	if (ps_info.notice && g_utf8_validate(ps_info.notice, -1, NULL))
+	    add_row(table, row_p, _("License:"), ps_info.notice, TRUE, FALSE);
+	if (ps_info.notice && g_utf8_validate(ps_info.notice, -1, NULL))
+	    add_row(table, row_p, _(" "), ps_info.notice, TRUE, FALSE);
+	if (ps_info.notice && g_utf8_validate(ps_info.notice, -1, NULL))
+	    add_row(table, row_p, _("Designers:"), ps_info.notice, FALSE, FALSE);
+	if (ps_info.notice && g_utf8_validate(ps_info.notice, -1, NULL))
+	    add_row(table, row_p, _(" "), ps_info.notice, FALSE, FALSE);
     }
 }
 
@@ -463,7 +550,7 @@ install_button_clicked_cb (GtkButton   *button,
         g_file_make_directory_with_parents (f, NULL, err);
         if (err) {
             /* TODO: show error dialog */
-            g_warning ("Could not create fonts directory: %s", err->message);
+            g_warning ("Could not create personal fonts directory: %s", err->message);
             g_error_free (err);
             g_object_unref (f);
             g_free (dest_path);
@@ -518,13 +605,13 @@ main(int argc, char **argv)
     }
 
     if (!XftInitFtLibrary()) {
-	g_printerr("could not initialise freetype library\n");
+	g_printerr("could not initialise FreeType library\n");
 	return 1;
     }
 
     error = FT_Init_FreeType(&library);
     if (error) {
-	g_printerr("could not initialise freetype\n");
+	g_printerr("could not initialise FreeType\n");
 	return 1;
     }
 
@@ -539,12 +626,13 @@ main(int argc, char **argv)
 
     error = FT_New_Face_From_URI(library, font_file, 0, &face);
     if (error) {
-	g_printerr("could not load face '%s'\n", font_file);
+	g_printerr("could not load font '%s'\n", font_file);
 	return 1;
     }
 
     window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
-    title = g_strconcat(face->family_name,
+    title = g_strconcat("Font viewer: ", 
+			face->family_name,
 			face->style_name ? ", " : "",
 			face->style_name, NULL);
     gtk_window_set_title(GTK_WINDOW(window), title);
@@ -559,6 +647,7 @@ main(int argc, char **argv)
     gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(swin),
 				   GTK_POLICY_AUTOMATIC, GTK_POLICY_NEVER);
     gtk_box_pack_start(GTK_BOX(hbox), swin, TRUE, TRUE, 0);
+    gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER_ALWAYS);
 
     drawing_area = gtk_drawing_area_new();
     gtk_widget_modify_bg(drawing_area, GTK_STATE_NORMAL, &white);
@@ -570,7 +659,7 @@ main(int argc, char **argv)
     /* set the minimum size on the scrolled window to prevent
      * unnecessary scrolling */
     gdk_drawable_get_size (GDK_DRAWABLE (pixmap), NULL, &height);
-    gtk_widget_set_size_request(swin, 500, height + 30);
+    gtk_widget_set_size_request(swin, 600, height + 85);
 
     g_signal_connect(drawing_area, "expose_event",
 		     G_CALLBACK(expose_event), pixmap);
@@ -595,7 +684,7 @@ main(int argc, char **argv)
 
 
     gtk_table_set_col_spacings(GTK_TABLE(table), 8);
-    gtk_table_set_row_spacings(GTK_TABLE(table), 2);
+    gtk_table_set_row_spacings(GTK_TABLE(table), 7);
     gtk_widget_show_all(window);
 
     gtk_main();
