diff --git a/plugins/starter/Makefile.am b/plugins/starter/Makefile.am
index 6c81a7e..58dc633 100644
--- a/plugins/starter/Makefile.am
+++ b/plugins/starter/Makefile.am
@@ -1,3 +1,8 @@
+# Schema file
+gsettings_in_file = org.gnome.anjuta.starter.gschema.xml.in
+@INTLTOOL_XML_NOMERGE_RULE@
+@GSETTINGS_RULES@
+
 # Plugin file
 plugin_in_files = anjuta-starter.plugin.in
 %.plugin: %.plugin.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*po) ; $(INTLTOOL_MERGE) $(top_srcdir)/po $< $@ -d -u -c $(top_builddir)/po/.intltool-merge-cache
@@ -34,11 +39,15 @@ libanjuta_starter_la_SOURCES= \
 nodist_libanjuta_starter_la_SOURCES= = \
 	$(BUILT_SOURCES)
 
+gsettings_SCHEMAS = $(gsettings_in_file:.xml.in=.xml)
+
 CLEANFILES = \
-	$(BUILT_SOURCES)
+	$(BUILT_SOURCES) \
+	$(gsettings_SCHEMAS)
 
 EXTRA_DIST = \
 	$(plugin_in_files) \
+    $(gsettings_in_file) \
 	starter.gresource.xml \
 	starter.ui
 
diff --git a/plugins/starter/org.gnome.anjuta.starter.gschema.xml.in b/plugins/starter/org.gnome.anjuta.starter.gschema.xml.in
new file mode 100644
index 0000000..17dd012
--- /dev/null
+++ b/plugins/starter/org.gnome.anjuta.starter.gschema.xml.in
@@ -0,0 +1,7 @@
+<schemalist>
+	<schema path="/org/gnome/anjuta/" id="org.gnome.anjuta.starter">
+		<key type="i" name="recent-limit">
+			<default>10</default>
+		</key>
+	</schema>
+</schemalist>
diff --git a/plugins/starter/plugin.c b/plugins/starter/plugin.c
index 3117580..79009e8 100644
--- a/plugins/starter/plugin.c
+++ b/plugins/starter/plugin.c
@@ -2,6 +2,7 @@
 /*
     plugin.c
     Copyright (C) 2008 Ignacio Casal Quinteiro
+    Copyright (C) 2014 Tristian Celestin
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -26,61 +27,60 @@
 #include <libanjuta/interfaces/ianjuta-project-manager.h>
 #include <libanjuta/interfaces/ianjuta-file-loader.h>
 #include <libanjuta/interfaces/ianjuta-wizard.h>
-
 #include <gtk/gtk.h>
-
 #include "plugin.h"
 
-static gpointer parent_class;
-
-#define STARTER_VBOX "starter_vbox"
-#define RECENT_VBOX "recent_vbox"
-#define IMPORT_IMAGE "import_image"
-#define NEW_IMAGE "new_image"
-
-#define NEW_PROJECT_PIXMAP "anjuta-project-wizard-plugin-48.png"
-#define IMPORT_PROJECT_PIXMAP "anjuta-project-import-plugin-48.png"
-
+#define PREF_SCHEMA "org.gnome.anjuta.starter"
+#define RECENT_LIMIT "recent-limit"
+#define STARTER_BOX "starter_box"
+#define ACTIONS_LISTBOX "actions_listbox"
+#define RECENT_LISTBOX "recent_listbox"
+#define IMPORT_ROW "import_row"
+#define ANJUTA_DOC_ROW "anjuta_doc_row"
+#define ANJUTA_FAQ_ROW "anjuta_faq_row"
+#define ONLINE_DOC_ROW "gtk_doc_row"
+#define RECENT_ROW "recent_row"
+#define CREATE_ROW "create_row"
+#define CODE_ROW "code_row"
+#define PROJECT_LABEL "project_label"
+#define PATH_LABEL "path_label"
+#define URI_KEY "uri"
+#define REMOVE_PROJECT_BUTTON "remove_project_button"
 #define PROJECT_WIZARD_ID "anjuta-project-wizard:NPWPlugin"
 #define PROJECT_IMPORT_ID "anjuta-project-import:AnjutaProjectImportPlugin"
 
-#define RECENT_LIMIT 3
+struct _StarterPluginPrivate {
+	GtkWidget *starter;
+	gint editor_watch_id;
+	gint project_watch_id;
+};
 
 void
-on_new_project_clicked (GtkButton *button, gpointer user_data);
-void
-on_import_project_clicked (GtkButton *button, gpointer user_data);
-
-static void
-on_recent_project_clicked (GtkButton *button, StarterPlugin *plugin)
+on_recent_project_activated (GtkListBox *box, GtkListBoxRow *row, gpointer user_data)
 {
 	GFile *file;
-	IAnjutaFileLoader *loader = 
-		anjuta_shell_get_interface (anjuta_plugin_get_shell (ANJUTA_PLUGIN (plugin)),
-		                            IAnjutaFileLoader,
-		                            NULL);
-	
-	file = g_object_get_data (G_OBJECT (button), "file");
+	IAnjutaFileLoader *loader;
 
-	ianjuta_file_loader_load (IANJUTA_FILE_LOADER (loader),
-							  file, FALSE, NULL);
+	loader = anjuta_shell_get_interface (anjuta_plugin_get_shell (ANJUTA_PLUGIN (user_data)), IAnjutaFileLoader, NULL);
+	file = g_file_new_for_uri ((const char*) g_object_get_data (G_OBJECT (row), URI_KEY));
+	ianjuta_file_loader_load (IANJUTA_FILE_LOADER (loader), file, FALSE, NULL);
 }
 
-void
-on_new_project_clicked (GtkButton *button, gpointer user_data)
+static void
+on_new_project_activated (GtkListBoxRow *row, gpointer user_data)
 {
-	AnjutaPlugin* plugin = ANJUTA_PLUGIN (user_data);
-	AnjutaPluginManager* plugin_manager = 
+	AnjutaPlugin *plugin = ANJUTA_PLUGIN (user_data);
+	AnjutaPluginManager *plugin_manager =
 		anjuta_shell_get_plugin_manager (anjuta_plugin_get_shell (plugin),
 		                                 NULL);
 	GList *plugin_handles = NULL;
 
+
 	plugin_handles = anjuta_plugin_manager_query (plugin_manager,
 	                                              "Anjuta Plugin",
 	                                              "Location",
 	                                              PROJECT_WIZARD_ID,
 	                                              NULL);
-
 	if (plugin_handles != NULL)
 	{
 		GObject* wizard =
@@ -91,8 +91,32 @@ on_new_project_clicked (GtkButton *button, gpointer user_data)
 	g_list_free (plugin_handles);
 }
 
-void
-on_import_project_clicked (GtkButton *button, gpointer user_data)
+static void
+on_local_doc_activated (GtkListBoxRow *row, gpointer user_data)
+{
+	gtk_show_uri (NULL, "help:anjuta-manual", GDK_CURRENT_TIME, NULL);
+}
+
+static void
+on_local_faq_activated (GtkListBoxRow *row, gpointer user_data)
+{
+	gtk_show_uri (NULL, "help:anjuta-faqs", GDK_CURRENT_TIME, NULL);
+}
+
+static void
+on_online_doc_activated (GtkListBoxRow *row, gpointer user_data)
+{
+	gtk_show_uri (NULL, "https://developer.gnome.org/references", GDK_CURRENT_TIME, NULL);
+}
+
+static void
+on_search_example_code_activated (GtkListBoxRow *row, gpointer user_data)
+{
+	gtk_show_uri (NULL, "http://www.koders.com", GDK_CURRENT_TIME, NULL);
+}
+
+static void
+on_import_project_activated (GtkListBoxRow *row, gpointer user_data)
 {
 	AnjutaPlugin* plugin = ANJUTA_PLUGIN (user_data);
 	AnjutaPluginManager* plugin_manager = 
@@ -116,128 +140,180 @@ on_import_project_clicked (GtkButton *button, gpointer user_data)
 	g_list_free (plugin_handles);
 }
 
+void
+on_row_activated (GtkListBox *box, GtkListBoxRow *row, gpointer user_data)
+{
+	gchar *name;
+
+	if (row != NULL)
+	{
+		name = gtk_widget_get_name (row);
+		if (name != NULL) {
+			if (g_strcmp0 (name, CREATE_ROW) == 0)
+				on_new_project_activated (row, user_data);
+			else if (g_strcmp0 (name, IMPORT_ROW) == 0)
+				on_import_project_activated (row, user_data);
+			else if (g_strcmp0 (name, ANJUTA_DOC_ROW) == 0)
+				on_local_doc_activated (row, user_data);
+			else if (g_strcmp0 (name, ANJUTA_FAQ_ROW) == 0)
+				on_local_faq_activated (row, user_data);
+			else if (g_strcmp0 (name, ONLINE_DOC_ROW) == 0)
+				on_online_doc_activated (row, user_data);
+			else if (g_strcmp0 (name, CODE_ROW) == 0)
+				on_search_example_code_activated (row, user_data);
+		}
+	}
+}
+
 static void
-build_recent_projects (GtkWidget *box, StarterPlugin* plugin)
+add_recent_project_row (GtkListBox *recent_project_box, GtkRecentData *recent_project)
 {
+	GtkBuilder *builder;
+	GFile *file;
+	GtkWidget *recent_row;
+	GtkLabel *project_label, *path_label;
+	GError *error;
+
+	error = NULL;
+	builder = gtk_builder_new ();
+	if (!gtk_builder_add_from_resource (builder, "/org/gnome/anjuta/ui/starter.ui", &error))
+	{
+		DEBUG_PRINT ("Could not load starter.ui! %s", error->message);
+		g_error_free (error);
+	}
+	else
+	{
+		file = g_file_new_for_uri (gtk_recent_info_get_uri (recent_project));
+		if (g_file_query_exists (file, NULL))
+		{
+			recent_row = GTK_WIDGET (gtk_builder_get_object (builder, RECENT_ROW));
+			project_label = GTK_WIDGET (gtk_builder_get_object (builder, PROJECT_LABEL));
+			path_label = GTK_WIDGET (gtk_builder_get_object (builder, PATH_LABEL));
+			gtk_label_set_text (project_label, gtk_recent_info_get_display_name(recent_project));
+			gtk_label_set_text (path_label, g_file_get_path(file));
+			g_object_set_data_full (G_OBJECT (recent_row), URI_KEY, g_file_get_uri(file), g_free);
+			gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (recent_row)), recent_row);
+			gtk_list_box_insert (recent_project_box, recent_row, -1);
+		}
+		g_object_unref (file);
+
+	}
+	g_object_unref (builder);
+}
+
+static void
+refresh_recent_project_view (GtkListBox *box)
+{
+	GSettings *settings;
 	GtkRecentManager *manager;
+	GtkRecentData *recent_project;
 	GList *items, *list;
-	gint i = 0;
-	
-	manager = gtk_recent_manager_get_default ();
+	gint i;
+	guint recent_limit;
 
+	manager = gtk_recent_manager_get_default ();
 	items = gtk_recent_manager_get_items (manager);
 	items = g_list_reverse (items);
-
 	list = items;
-	while (i < RECENT_LIMIT && list != NULL)
+	settings = g_settings_new (PREF_SCHEMA);
+	i = 0;
+	g_settings_get (settings, RECENT_LIMIT, "i", &recent_limit);
+	while (i < recent_limit && list != NULL)
 	{
 		if (strcmp (gtk_recent_info_get_mime_type (list->data), "application/x-anjuta") == 0)
 		{
-			GtkWidget *button;
-			GtkWidget *label;
-			GtkWidget *button_box;
-			GFile *file;
-			GFileInfo* info;
-			gchar *uri;
-			GIcon* icon;
-
-			button_box = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 5);
-			button = gtk_button_new ();
-			gtk_button_set_relief (GTK_BUTTON (button), GTK_RELIEF_NONE);
-			gtk_widget_set_halign (button, GTK_ALIGN_START);
-
-			label = gtk_label_new (gtk_recent_info_get_display_name (list->data));
-			gtk_box_pack_end (GTK_BOX (button_box), label, FALSE, FALSE, 0);
-			
-			file = g_file_new_for_uri (gtk_recent_info_get_uri (list->data));
-
-			if (!g_file_query_exists (file, NULL))
-			{
-				list = g_list_next (list);
-				continue;
-			}
-
-			info = g_file_query_info (file,
-			                          G_FILE_ATTRIBUTE_STANDARD_ICON,
-			                          G_FILE_QUERY_INFO_NONE,
-			                          NULL, NULL);
-			if (info)
-			{
-				icon = g_file_info_get_icon (info);
-				if (icon)
-				{
-					GtkWidget* image = gtk_image_new_from_gicon (icon,
-						                                         GTK_ICON_SIZE_BUTTON);
-					gtk_box_pack_start (GTK_BOX (button_box), image, FALSE, FALSE, 0);
-				}
-				g_object_unref (info);
-			}
-			gtk_container_add (GTK_CONTAINER (button), button_box);
-			gtk_widget_show_all (button);
-			
-			gtk_box_pack_start (GTK_BOX (box), button, FALSE, FALSE, 0);
-
-			g_object_set_data_full (G_OBJECT (button), "file", file,
-			                        (GDestroyNotify)g_object_unref);
-			uri = gtk_recent_info_get_uri_display (list->data);
-			if (uri)
-			{
-				gchar *tip;
-
-				tip = g_strdup_printf (_("Open '%s'"), uri);
-				gtk_widget_set_tooltip_text (button, tip);
-
-				g_free (tip);
-				g_free (uri);
-			}
-
-			g_signal_connect (button, "clicked",
-							  G_CALLBACK (on_recent_project_clicked),
-							  plugin);
+			recent_project = list->data;
+			add_recent_project_row (box, recent_project);
 			i++;
 		}
-		list = g_list_next (list);
+		list = list->next;
 	}
-
 	g_list_free_full(items, (GDestroyNotify)gtk_recent_info_unref);
+	g_object_unref (settings);
+}
+
+static void
+on_remove_project_clicked (GtkButton *button, gpointer user_data)
+{
+	GtkRecentManager *manager;
+	GtkListBox *recent_list_box;
+	GtkListBoxRow *row;
+	GError *error;
+
+	manager = gtk_recent_manager_get_default ();
+	recent_list_box = GTK_LIST_BOX (user_data);
+	row = gtk_list_box_get_selected_row (recent_list_box);
+	error = NULL;
+	if (row != NULL)
+	{
+		if (gtk_recent_manager_remove_item (manager, g_object_get_data (row, URI_KEY), &error))
+		{
+			gtk_container_remove (GTK_CONTAINER (recent_list_box), row);
+		}
+		else
+		{
+			DEBUG_PRINT ("Could not remove recent item. %s", error->message);
+			g_error_free (error);
+		}
+
+	}
+}
+
+static void
+add_action_separators (GtkListBoxRow *row, GtkListBoxRow *before, gpointer user_data)
+{
+	GtkWidget *current;
+
+	if (before == NULL)
+		return;
+
+	current = gtk_list_box_row_get_header (row);
+	if (current == NULL)
+	{
+		current = gtk_separator_new (GTK_ORIENTATION_HORIZONTAL);
+		gtk_widget_show (current);
+		gtk_list_box_row_set_header (row, current);
+	}
 }
 
 static GtkWidget*
 create_starter_widget (StarterPlugin* plugin)
 {
-	GError* error = NULL;
-	GtkWidget* starter_vbox;
-	GtkWidget* recent_vbox;
-	GtkBuilder* builder = gtk_builder_new ();
-	GtkWidget* image;
+	GError *error;
+	GtkWidget *starter_box;
+	GtkWidget *actions_listbox;
+	GtkWidget *recent_listbox;
+	GtkBuilder *builder;
+	GtkWidget *button;
 	
-	if (!gtk_builder_add_from_resource (builder,
-	                                    "/org/gnome/anjuta/ui/starter.ui",
-	                                    &error))
+	error = NULL;
+	builder = gtk_builder_new ();
+	starter_box = NULL;
+	if (!gtk_builder_add_from_resource (builder, "/org/gnome/anjuta/ui/starter.ui", &error))
 	{
-		DEBUG_PRINT ("Could load starter ui! %s", error->message);
+		DEBUG_PRINT ("Could not load starter.ui! %s", error->message);
 		g_error_free (error);
-		return NULL;
 	}
-	starter_vbox = GTK_WIDGET (gtk_builder_get_object (builder, STARTER_VBOX));
-	recent_vbox = GTK_WIDGET (gtk_builder_get_object (builder, RECENT_VBOX));
+	else
+	{
+		actions_listbox = GTK_WIDGET (gtk_builder_get_object (builder, ACTIONS_LISTBOX));
+		gtk_list_box_set_header_func (GTK_LIST_BOX(actions_listbox), add_action_separators, NULL, NULL);
 
-	build_recent_projects (recent_vbox, plugin);
+		recent_listbox = GTK_WIDGET (gtk_builder_get_object (builder, RECENT_LISTBOX));
+		refresh_recent_project_view (GTK_LIST_BOX(recent_listbox));
 
-	g_object_ref (starter_vbox);
-	gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (starter_vbox)),
-	                      starter_vbox);
+		starter_box = GTK_WIDGET (gtk_builder_get_object (builder, STARTER_BOX));
+		g_object_ref (starter_box);
+		gtk_container_remove (GTK_CONTAINER (gtk_widget_get_parent (starter_box)), starter_box);
 
-	image = GTK_WIDGET (gtk_builder_get_object (builder, NEW_IMAGE));
-	gtk_image_set_from_file (GTK_IMAGE (image),
-	                         PACKAGE_PIXMAPS_DIR"/"NEW_PROJECT_PIXMAP);
-	image = GTK_WIDGET (gtk_builder_get_object (builder, IMPORT_IMAGE));
-	gtk_image_set_from_file (GTK_IMAGE (image),
-	                         PACKAGE_PIXMAPS_DIR"/"IMPORT_PROJECT_PIXMAP);	
-	
-	gtk_builder_connect_signals (builder, plugin);
+		button = GTK_WIDGET (gtk_builder_get_object (builder, REMOVE_PROJECT_BUTTON));
+		g_signal_connect_object (G_OBJECT (button), "clicked",
+			G_CALLBACK (on_remove_project_clicked), recent_listbox, G_CONNECT_AFTER);
 
-	return starter_vbox;
+		gtk_builder_connect_signals (builder, plugin);
+	}
+	g_object_unref (builder);
+	return starter_box;
 }
 
 /* Remove the starter plugin once a document was opened */
@@ -245,18 +321,21 @@ static void
 on_value_added_current_project (AnjutaPlugin *plugin, const gchar *name,
 							   const GValue *value, gpointer data)
 {
-	GObject* project = g_value_get_object (value);
-	AnjutaShell* shell = ANJUTA_PLUGIN(plugin)->shell;
-	StarterPlugin* splugin = ANJUTA_PLUGIN_STARTER (plugin);
+	GObject *project;
+	AnjutaShell *shell;
+	StarterPlugin *splugin;
 	
+	project = g_value_get_object (value);
+	shell = ANJUTA_PLUGIN(plugin)->shell;
+	splugin = ANJUTA_PLUGIN_STARTER (plugin);
 	if (project)
 	{
-		if (splugin->starter)
+		if (splugin->priv->starter)
 		{
 			DEBUG_PRINT ("Hiding starter");
-			anjuta_shell_remove_widget (shell, splugin->starter, NULL);
+			anjuta_shell_remove_widget (shell, splugin->priv->starter, NULL);
 		}
-		splugin->starter = NULL;
+		splugin->priv->starter = NULL;
 	}
 }
 
@@ -266,23 +345,27 @@ static void
 on_value_added_current_editor (AnjutaPlugin *plugin, const gchar *name,
 							   const GValue *value, gpointer data)
 {
-	GObject* doc = g_value_get_object (value);
-	AnjutaShell* shell = ANJUTA_PLUGIN(plugin)->shell;
-	StarterPlugin* splugin = ANJUTA_PLUGIN_STARTER (plugin);
-	
+	GObject *doc;
+	AnjutaShell *shell;
+	StarterPlugin *splugin;
+
+	doc = g_value_get_object (value);
+	shell = ANJUTA_PLUGIN(plugin)->shell;
+	splugin = ANJUTA_PLUGIN_STARTER (plugin);
 	if (doc)
 	{
-		if (splugin->starter)
+		if (splugin->priv->starter)
 		{
 			DEBUG_PRINT ("Hiding starter");
-			anjuta_shell_remove_widget (shell, splugin->starter, NULL);
+			anjuta_shell_remove_widget (shell, splugin->priv->starter, NULL);
 		}
-		splugin->starter = NULL;
+		splugin->priv->starter = NULL;
 	}
 }
 
 static void
-on_value_removed (AnjutaPlugin *plugin, const gchar *name,
+on_value_removed (AnjutaPlugin *plugin,
+				  const gchar *name,
                   gpointer data)
 {
 	AnjutaShell* shell = anjuta_plugin_get_shell (plugin);
@@ -298,29 +381,29 @@ on_value_removed (AnjutaPlugin *plugin, const gchar *name,
 	    !(pm && ianjuta_project_manager_get_current_project (pm, NULL)))
 	{
 		DEBUG_PRINT ("Showing starter");
-		splugin->starter = create_starter_widget (splugin);
-		anjuta_shell_add_widget (shell, splugin->starter,
+		splugin->priv->starter = create_starter_widget (splugin);
+		anjuta_shell_add_widget (shell, splugin->priv->starter,
 		                         "AnjutaStarter",
 		                         _("Start"),
 		                         GTK_STOCK_ABOUT,
 		                         ANJUTA_SHELL_PLACEMENT_CENTER,
 		                         NULL);
-		anjuta_shell_present_widget (shell, splugin->starter, NULL);
-		g_object_unref (splugin->starter);
+		anjuta_shell_present_widget (shell, splugin->priv->starter, NULL);
+		g_object_unref (splugin->priv->starter);
 	}
 }
 
 static void
-on_session_load (AnjutaShell* shell,
+on_session_load (AnjutaShell *shell,
                  AnjutaSessionPhase phase,
-                 AnjutaSession* session,
-                 StarterPlugin* plugin)
+                 AnjutaSession *session,
+                 StarterPlugin *plugin)
 {
 	if (phase == ANJUTA_SESSION_PHASE_END)
 	{
-		if (!plugin->starter)
+		if (!plugin->priv->starter)
 			on_value_removed (ANJUTA_PLUGIN (plugin), NULL, plugin);
-		if (plugin->starter)
+		if (plugin->priv->starter)
 		{
 			anjuta_shell_maximize_widget (shell,
 			                              "AnjutaStarter",
@@ -332,17 +415,17 @@ on_session_load (AnjutaShell* shell,
 static gboolean
 activate_plugin (AnjutaPlugin *plugin)
 {
-	StarterPlugin* splugin = ANJUTA_PLUGIN_STARTER (plugin);
+	StarterPlugin *splugin = ANJUTA_PLUGIN_STARTER (plugin);
 
 	DEBUG_PRINT ("StarterPlugin: Activating document manager plugin...");
 	
-	splugin->editor_watch_id = 
+	splugin->priv->editor_watch_id =
 		anjuta_plugin_add_watch (plugin,
 								  IANJUTA_DOCUMENT_MANAGER_CURRENT_DOCUMENT,
 								 on_value_added_current_editor,
 								 on_value_removed,
 								 NULL);
-	splugin->project_watch_id = 
+	splugin->priv->project_watch_id =
 		anjuta_plugin_add_watch (plugin,
 								  IANJUTA_PROJECT_MANAGER_CURRENT_PROJECT,
 								 on_value_added_current_project,
@@ -363,12 +446,12 @@ deactivate_plugin (AnjutaPlugin *plugin)
 {
 	StarterPlugin* splugin = ANJUTA_PLUGIN_STARTER (plugin);
 	DEBUG_PRINT ("StarterPlugin: Deactivating starter plugin...");
-	if (splugin->starter)
+	if (splugin->priv->starter)
 		anjuta_shell_remove_widget (anjuta_plugin_get_shell (plugin),
-		                            splugin->starter, NULL);
+		                            splugin->priv->starter, NULL);
 
-	anjuta_plugin_remove_watch (plugin, splugin->editor_watch_id, FALSE);
-	anjuta_plugin_remove_watch (plugin, splugin->project_watch_id, FALSE);	
+	anjuta_plugin_remove_watch (plugin, splugin->priv->editor_watch_id, FALSE);
+	anjuta_plugin_remove_watch (plugin, splugin->priv->project_watch_id, FALSE);
 	
 	return TRUE;
 }
@@ -376,28 +459,42 @@ deactivate_plugin (AnjutaPlugin *plugin)
 static void
 dispose (GObject *obj)
 {
+	AnjutaPluginClass *klass;
+	gpointer parent_class;
+
+	klass =  ANJUTA_PLUGIN_GET_CLASS(obj);
+	parent_class = g_type_class_peek_parent (klass);
 	G_OBJECT_CLASS (parent_class)->dispose (obj);
 }
 
 static void
 finalize (GObject *obj)
 {
+	AnjutaPluginClass *klass;
+	gpointer parent_class;
+
 	/* Finalization codes here */
+	klass =  ANJUTA_PLUGIN_GET_CLASS(obj);
+	parent_class = g_type_class_peek_parent (klass);
 	G_OBJECT_CLASS (parent_class)->finalize (obj);
 }
 
 static void
 starter_plugin_instance_init (GObject *obj)
 {
+	StarterPlugin *splugin;
+
+	splugin = ANJUTA_PLUGIN_STARTER (obj);
+	splugin->priv = G_TYPE_INSTANCE_GET_PRIVATE (obj, ANJUTA_TYPE_PLUGIN_STARTER, StarterPluginPrivate);
 }
 
 static void
 starter_plugin_class_init (GObjectClass *klass) 
 {
-	AnjutaPluginClass *plugin_class = ANJUTA_PLUGIN_CLASS (klass);
-
-	parent_class = g_type_class_peek_parent (klass);
+	AnjutaPluginClass *plugin_class;
 
+	g_type_class_add_private (klass, sizeof (StarterPluginPrivate));
+	plugin_class = ANJUTA_PLUGIN_CLASS (klass);
 	plugin_class->activate = activate_plugin;
 	plugin_class->deactivate = deactivate_plugin;
 	klass->dispose = dispose;
diff --git a/plugins/starter/plugin.h b/plugins/starter/plugin.h
index c15c80d..7bfedce 100644
--- a/plugins/starter/plugin.h
+++ b/plugins/starter/plugin.h
@@ -1,9 +1,28 @@
+/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 4; tab-width: 4 -*- */
+/*
+    plugin.c
+    Copyright (C) 2014 Tristian Celestin
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+*/
+
 #ifndef __PLUGIN_H__
 #define __PLUGIN_H__
 
 #include <libanjuta/anjuta-plugin.h>
 
-extern GType starter_plugin_get_type (GTypeModule *module);
 #define ANJUTA_TYPE_PLUGIN_STARTER         (starter_plugin_get_type (NULL))
 #define ANJUTA_PLUGIN_STARTER(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), ANJUTA_TYPE_PLUGIN_STARTER, StarterPlugin))
 #define ANJUTA_PLUGIN_STARTER_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST ((k), ANJUTA_TYPE_PLUGIN_STARTER, StarterPluginClass))
@@ -13,16 +32,20 @@ extern GType starter_plugin_get_type (GTypeModule *module);
 
 typedef struct _StarterPlugin StarterPlugin;
 typedef struct _StarterPluginClass StarterPluginClass;
+typedef struct _StarterPluginPrivate StarterPluginPrivate;
 
 struct _StarterPlugin{
 	AnjutaPlugin parent;
-	GtkWidget *starter;
-	gint editor_watch_id;
-	gint project_watch_id;
+	StarterPluginPrivate *priv;
 };
 
 struct _StarterPluginClass{
 	AnjutaPluginClass parent_class;
 };
 
+extern GType starter_plugin_get_type (GTypeModule *module);
+
+void on_recent_project_activated (GtkListBox *box, GtkListBoxRow *row, gpointer user_data);
+void on_row_activated (GtkListBox *box, GtkListBoxRow *row, gpointer user_data);
+
 #endif
diff --git a/plugins/starter/starter.ui b/plugins/starter/starter.ui
index 7da4df1..19bea02 100644
--- a/plugins/starter/starter.ui
+++ b/plugins/starter/starter.ui
@@ -1,121 +1,127 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.16.1 -->
 <interface>
-  <!-- interface-requires gtk+ 3.0 -->
+  <requires lib="gtk+" version="3.10"/>
   <object class="GtkWindow" id="unused">
     <property name="can_focus">False</property>
     <child>
-      <object class="GtkVBox" id="starter_vbox">
+      <object class="GtkBox" id="starter_box">
         <property name="visible">True</property>
         <property name="can_focus">False</property>
-        <property name="spacing">10</property>
+        <property name="halign">center</property>
+        <property name="valign">center</property>
+        <property name="margin_left">5</property>
+        <property name="margin_right">5</property>
+        <property name="spacing">40</property>
+        <property name="homogeneous">True</property>
         <child>
-          <object class="GtkFrame" id="frame3">
+          <object class="GtkFrame" id="actions_frame">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
-            <property name="hexpand">True</property>
             <property name="label_xalign">0</property>
+            <property name="label_yalign">0</property>
+            <property name="shadow_type">in</property>
             <child>
-              <object class="GtkAlignment" id="alignment3">
+              <object class="GtkListBox" id="actions_listbox">
+                <property name="name">actions_listbox</property>
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="left_padding">12</property>
+                <property name="selection_mode">none</property>
+                <signal name="row-activated" handler="on_row_activated" swapped="no"/>
                 <child>
-                  <object class="GtkHBox" id="hbox1">
+                  <object class="GtkListBoxRow" id="create_row">
+                    <property name="name">create_row</property>
+                    <property name="width_request">100</property>
+                    <property name="height_request">80</property>
                     <property name="visible">True</property>
-                    <property name="can_focus">False</property>
-                    <property name="halign">start</property>
-                    <property name="valign">start</property>
-                    <property name="spacing">5</property>
+                    <property name="can_focus">True</property>
                     <child>
-                      <object class="GtkButton" id="new_button">
+                      <object class="GtkLabel" id="label3">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">True</property>
-                        <property name="halign">start</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="relief">none</property>
-                        <signal name="clicked" handler="on_new_project_clicked" swapped="no"/>
-                        <child>
-                          <object class="GtkBox" id="box1">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <child>
-                              <object class="GtkImage" id="new_image">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="icon-size">6</property>
-                              </object>
-                              <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
-                                <property name="position">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkLabel" id="label1">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Create a new project</property>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">True</property>
-                                <property name="position">1</property>
-                              </packing>
-                            </child>
-                          </object>
-                        </child>
+                        <property name="can_focus">False</property>
+                        <property name="xpad">150</property>
+                        <property name="label" translatable="yes">Create a new project</property>
                       </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="position">0</property>
-                      </packing>
                     </child>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkListBoxRow" id="import_row">
+                    <property name="name">import_row</property>
+                    <property name="width_request">100</property>
+                    <property name="height_request">80</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
                     <child>
-                      <object class="GtkButton" id="import_button">
+                      <object class="GtkLabel" id="label4">
                         <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">True</property>
-                        <property name="halign">start</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="relief">none</property>
-                        <signal name="clicked" handler="on_import_project_clicked" swapped="no"/>
-                        <child>
-                          <object class="GtkBox" id="box2">
-                            <property name="visible">True</property>
-                            <property name="can_focus">False</property>
-                            <child>
-                              <object class="GtkImage" id="import_image">
-                                <property name="can_focus">False</property>
-                                <property name="icon-size">6</property>
-                              </object>
-                              <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
-                                <property name="position">0</property>
-                              </packing>
-                            </child>
-                            <child>
-                              <object class="GtkLabel" id="label2">
-                                <property name="visible">True</property>
-                                <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Import an existing project</property>
-                              </object>
-                              <packing>
-                                <property name="expand">False</property>
-                                <property name="fill">True</property>
-                                <property name="position">1</property>
-                              </packing>
-                            </child>
-                          </object>
-                        </child>
+                        <property name="can_focus">False</property>
+                        <property name="label" translatable="yes">Import a project</property>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkListBoxRow" id="code_row">
+                    <property name="name">code_row</property>
+                    <property name="width_request">100</property>
+                    <property name="height_request">80</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <object class="GtkLabel" id="label7">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label" translatable="yes">Search for example code</property>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkListBoxRow" id="anjuta_doc_row">
+                    <property name="name">anjuta_doc_row</property>
+                    <property name="width_request">100</property>
+                    <property name="height_request">80</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <object class="GtkLabel" id="label5">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label" translatable="yes">View local Anjuta documentation</property>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkListBoxRow" id="anjuta_faq_row">
+                    <property name="name">anjuta_faq_row</property>
+                    <property name="width_request">100</property>
+                    <property name="height_request">80</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <object class="GtkLabel" id="label6">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label" translatable="yes">View local Anjuta FAQ</property>
+                      </object>
+                    </child>
+                  </object>
+                </child>
+                <child>
+                  <object class="GtkListBoxRow" id="gtk_doc_row">
+                    <property name="name">gtk_doc_row</property>
+                    <property name="width_request">100</property>
+                    <property name="height_request">80</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <child>
+                      <object class="GtkLabel" id="label1">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="label" translatable="yes">View online library documentation</property>
                       </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="position">1</property>
-                      </packing>
                     </child>
                   </object>
                 </child>
@@ -126,153 +132,139 @@
             </child>
           </object>
           <packing>
-            <property name="expand">False</property>
+            <property name="expand">True</property>
             <property name="fill">True</property>
-            <property name="padding">10</property>
-            <property name="position">0</property>
+            <property name="position">1</property>
           </packing>
         </child>
         <child>
-          <object class="GtkFrame" id="frame1">
+          <object class="GtkBox" id="recent_projects_box">
             <property name="visible">True</property>
             <property name="can_focus">False</property>
             <property name="hexpand">True</property>
-            <property name="label_xalign">0</property>
+            <property name="vexpand">True</property>
+            <property name="orientation">vertical</property>
             <child>
-              <object class="GtkAlignment" id="alignment1">
+              <object class="GtkScrolledWindow" id="scrolledwindow2">
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="left_padding">12</property>
+                <property name="can_focus">True</property>
+                <property name="vexpand">True</property>
+                <property name="shadow_type">in</property>
                 <child>
-                  <object class="GtkVBox" id="recent_vbox">
+                  <object class="GtkViewport" id="viewport2">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
-                    <property name="halign">start</property>
-                    <property name="spacing">5</property>
-                    <child>
-                      <placeholder/>
-                    </child>
-                    <child>
-                      <placeholder/>
-                    </child>
                     <child>
-                      <placeholder/>
+                      <object class="GtkListBox" id="recent_listbox">
+                        <property name="name">recent_listbox</property>
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="activate_on_single_click">False</property>
+                        <signal name="row-activated" handler="on_recent_project_activated" swapped="no"/>
+                      </object>
                     </child>
                   </object>
                 </child>
               </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">1</property>
+              </packing>
             </child>
-            <child type="label">
-              <object class="GtkLabel" id="label3">
+            <child>
+              <object class="GtkToolbar" id="toolbar2">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="label" translatable="yes">Recent projects:</property>
-                <property name="use_markup">True</property>
-                <attributes>
-                  <attribute name="weight" value="bold"/>
-                </attributes>
+                <child>
+                  <object class="GtkToolButton" id="remove_project_button">
+                    <property name="use_action_appearance">True</property>
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="tooltip_text" translatable="yes">Remove recently used project from list</property>
+                    <property name="label" translatable="yes">Unlist Project</property>
+                    <property name="stock_id">gtk-remove</property>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="homogeneous">True</property>
+                  </packing>
+                </child>
+                <style>
+                  <class name="inline-toolbar"/>
+                </style>
               </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">True</property>
+                <property name="position">2</property>
+              </packing>
             </child>
           </object>
           <packing>
-            <property name="expand">False</property>
+            <property name="expand">True</property>
             <property name="fill">True</property>
-            <property name="padding">10</property>
-            <property name="position">1</property>
+            <property name="position">2</property>
           </packing>
         </child>
+      </object>
+    </child>
+  </object>
+  <object class="GtkWindow" id="unused_1">
+    <property name="can_focus">False</property>
+    <child>
+      <object class="GtkListBox" id="unused_2">
+        <property name="visible">True</property>
+        <property name="can_focus">False</property>
+        <property name="selection_mode">none</property>
         <child>
-          <object class="GtkFrame" id="frame2">
+          <object class="GtkListBoxRow" id="recent_row">
+            <property name="width_request">100</property>
+            <property name="height_request">80</property>
             <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="hexpand">True</property>
-            <property name="label_xalign">0</property>
+            <property name="can_focus">True</property>
+            <property name="margin_bottom">2</property>
             <child>
-              <object class="GtkAlignment" id="alignment2">
+              <object class="GtkBox" id="box2">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
-                <property name="left_padding">12</property>
+                <property name="valign">center</property>
+                <property name="orientation">vertical</property>
                 <child>
-                  <object class="GtkVBox" id="vbox4">
+                  <object class="GtkLabel" id="project_label">
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
-                    <property name="spacing">5</property>
-                    <child>
-                      <object class="GtkLinkButton" id="tutorials_link">
-                        <property name="label" translatable="yes">Tutorials</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">True</property>
-                        <property name="has_tooltip">True</property>
-                        <property name="halign">start</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="relief">none</property>
-                        <property name="uri">http://developer.gnome.org</property>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="position">0</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLinkButton" id="manual_link">
-                        <property name="label" translatable="yes">Anjuta Manual</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">True</property>
-                        <property name="has_tooltip">True</property>
-                        <property name="halign">start</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="relief">none</property>
-                        <property name="uri">help:anjuta-manual</property>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="position">1</property>
-                      </packing>
-                    </child>
-                    <child>
-                      <object class="GtkLinkButton" id="faq_link">
-                        <property name="label" translatable="yes">FAQ</property>
-                        <property name="visible">True</property>
-                        <property name="can_focus">True</property>
-                        <property name="receives_default">True</property>
-                        <property name="has_tooltip">True</property>
-                        <property name="halign">start</property>
-                        <property name="use_action_appearance">False</property>
-                        <property name="relief">none</property>
-                        <property name="uri">help:anjuta-faqs</property>
-                      </object>
-                      <packing>
-                        <property name="expand">False</property>
-                        <property name="fill">False</property>
-                        <property name="position">2</property>
-                      </packing>
-                    </child>
+                    <property name="halign">center</property>
+                    <property name="valign">center</property>
+                    <property name="label" translatable="yes">label</property>
+                    <attributes>
+                      <attribute name="weight" value="bold"/>
+                    </attributes>
                   </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkLabel" id="path_label">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">label</property>
+                    <style>
+                      <class name="dim-label"/>
+                    </style>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="fill">True</property>
+                    <property name="position">1</property>
+                  </packing>
                 </child>
-              </object>
-            </child>
-            <child type="label">
-              <object class="GtkLabel" id="label4">
-                <property name="visible">True</property>
-                <property name="can_focus">False</property>
-                <property name="label" translatable="yes">Getting started:</property>
-                <property name="use_markup">True</property>
-                <attributes>
-                  <attribute name="weight" value="bold"/>
-                </attributes>
               </object>
             </child>
           </object>
-          <packing>
-            <property name="expand">False</property>
-            <property name="fill">True</property>
-            <property name="padding">10</property>
-            <property name="position">2</property>
-          </packing>
         </child>
       </object>
     </child>
diff --git a/src/anjuta-window.c b/src/anjuta-window.c
index be6e87b..30a6bb2 100644
--- a/src/anjuta-window.c
+++ b/src/anjuta-window.c
@@ -595,7 +595,7 @@ static void
 anjuta_window_instance_init (AnjutaWindow *win)
 {
 	GtkWidget *menubar, *about_menu;
-	GtkWidget *view_menu, *hbox;
+	GtkWidget *view_menu, *hbox, *vbox;
 	GtkWidget *main_box;
 	GtkWidget *dockbar;
 	GtkAction* action;
@@ -640,9 +640,14 @@ anjuta_window_instance_init (AnjutaWindow *win)
 	gtk_widget_show (win->dock);
 	gtk_box_pack_end(GTK_BOX (hbox), win->dock, TRUE, TRUE, 0);
 
+
+	vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
+	gtk_widget_show (vbox);
 	dockbar = gdl_dock_bar_new (G_OBJECT (win->dock));
 	gtk_widget_show (dockbar);
-	gtk_box_pack_start(GTK_BOX (hbox), dockbar, FALSE, FALSE, 0);
+	gtk_box_set_spacing (GTK_BOX (dockbar), 1);
+	gtk_box_pack_start (GTK_BOX (vbox), dockbar, FALSE, FALSE, 2);
+	gtk_box_pack_start (GTK_BOX (hbox), vbox, FALSE, FALSE, 2);
 
 	win->layout_manager = gdl_dock_layout_new (G_OBJECT (win->dock));
 	g_signal_connect (win->layout_manager, "notify::dirty",
