diff --git a/configure.ac b/configure.ac
index 4913893..5fb6daa 100644
--- a/configure.ac
+++ b/configure.ac
@@ -921,6 +921,7 @@ plugins/project-wizard/templates/m4/Makefile
 plugins/am-project/Makefile
 plugins/am-project/tests/atlocal
 plugins/am-project/tests/Makefile
+plugins/mk-project/Makefile
 plugins/dir-project/Makefile
 plugins/language-support-cpp-java/Makefile
 plugins/language-support-cpp-java/cxxparser/Makefile
diff --git a/plugins/Makefile.am b/plugins/Makefile.am
index c03d838..b72de18 100644
--- a/plugins/Makefile.am
+++ b/plugins/Makefile.am
@@ -24,6 +24,7 @@ SUBDIRS = . \
 	language-support-python \
 	language-support-vala \
 	message-view \
+	mk-project \
 	patch \
 	project-import \
 	project-manager \
diff --git a/plugins/mk-project/mk-project-private.h b/plugins/mk-project/mk-project-private.h
index b6c26c7..ef3b3ff 100644
--- a/plugins/mk-project/mk-project-private.h
+++ b/plugins/mk-project/mk-project-private.h
@@ -63,6 +63,9 @@ struct _MkpProject {
 	/* project files monitors */
 	GHashTable         *monitors;
 
+	/* Number of not loaded node */
+	gint				loading;
+
 	/* Keep list style */
 	AnjutaTokenStyle *space_list;
 	AnjutaTokenStyle *arg_list;
@@ -81,7 +84,7 @@ gchar *mkp_project_token_evaluate (MkpProject *project, AnjutaToken *token);
 
 MkpTarget* mkp_target_new (const gchar *name, AnjutaProjectNodeType type);
 void mkp_target_free (MkpTarget *node);
-void mkp_target_add_token (MkpGroup *node, AnjutaToken *token);
+void mkp_target_add_token (MkpTarget *node, AnjutaToken *token);
 MkpSource* mkp_source_new (GFile *file);
 
 G_END_DECLS
diff --git a/plugins/mk-project/mk-project.c b/plugins/mk-project/mk-project.c
index 51b7add..8dc8f79 100644
--- a/plugins/mk-project/mk-project.c
+++ b/plugins/mk-project/mk-project.c
@@ -32,6 +32,7 @@
 #include <libanjuta/interfaces/ianjuta-project.h>
 #include <libanjuta/anjuta-debug.h>
 #include <libanjuta/anjuta-utils.h>
+#include <libanjuta/anjuta-pkg-config.h>
 
 #include <string.h>
 #include <memory.h>
@@ -56,13 +57,6 @@
 
 static const gchar *valid_makefiles[] = {"GNUmakefile", "makefile", "Makefile", NULL};
 
-/* convenient shortcut macro the get the MkpNode from a GNode */
-#define MKP_NODE_DATA(node)  ((node) != NULL ? (AnjutaProjectNodeData *)((node)->data) : NULL)
-#define MKP_GROUP_DATA(node)  ((node) != NULL ? (MkpGroupData *)((node)->data) : NULL)
-#define MKP_TARGET_DATA(node)  ((node) != NULL ? (MkpTargetData *)((node)->data) : NULL)
-#define MKP_SOURCE_DATA(node)  ((node) != NULL ? (MkpSourceData *)((node)->data) : NULL)
-
-
 struct _MkpVariable {
 	gchar *name;
 	AnjutaTokenType assign;
@@ -72,7 +66,7 @@ struct _MkpVariable {
 typedef struct _MkpRootData MkpRootData;
 
 struct _MkpRootData {
-	AnjutaProjectNodeData base;
+	AnjutaProjectNode base;
 };
 
 typedef enum {
@@ -83,10 +77,8 @@ typedef enum {
 	AM_GROUP_TOKEN_LAST
 } MkpGroupTokenCategory;
 
-typedef struct _MkpGroupData MkpGroupData;
-
-struct _MkpGroupData {
-	AnjutaProjectNodeData base;		/* Common node data */
+struct _MkpGroup {
+	AnjutaProjectNode base;		/* Common node data */
 	gboolean dist_only;			/* TRUE if the group is distributed but not built */
 	GFile *makefile;				/* GFile corresponding to group makefile */
 	AnjutaTokenFile *tfile;		/* Corresponding Makefile */
@@ -105,19 +97,15 @@ typedef enum _MkpTargetFlag
 	AM_TARGET_MAN_SECTION = 31 << 7
 } MkpTargetFlag;
 
-typedef struct _MkpTargetData MkpTargetData;
-
-struct _MkpTargetData {
-	AnjutaProjectNodeData base;
+struct _MkpTarget {
+	AnjutaProjectNode base;
 	gchar *install;
 	gint flags;
 	GList* tokens;
 };
 
-typedef struct _MkpSourceData MkpSourceData;
-
-struct _MkpSourceData {
-	AnjutaProjectNodeData base;
+struct _MkpSource {
+	AnjutaProjectNode base;
 	AnjutaToken* token;
 };
 
@@ -288,59 +276,37 @@ mkp_root_new (GFile *file)
 
 	g_return_val_if_fail (file != NULL, NULL);
 	
-	root = g_slice_new0(MkpRootData); 
-	root->base.type = ANJUTA_PROJECT_ROOT;
-	root->base.properties = NULL;
-	root->base.file = g_file_dup (file);
+	root = g_object_new (MKP_TYPE_PROJECT, NULL); 
+	/* root->base.type = ANJUTA_PROJECT_ROOT; */
+	root->base.file = g_object_ref (file);
 
-	return g_node_new (root);
+	return ANJUTA_PROJECT_NODE(root);
 }
 
 static void
 mkp_root_free (AnjutaProjectNode *node)
 {
-	AnjutaProjectNodeData *data = MKP_NODE_DATA (node);
-	
-	if (data->file != NULL) g_object_unref (data->file);
-	g_free (data->name);
-	g_slice_free (MkpRootData, (MkpRootData *)data);
-
-	g_node_destroy (node);
+	g_object_unref (G_OBJECT(node));
 }
 
 /* Group objects
  *---------------------------------------------------------------------------*/
 
 static void
-mkp_group_add_token (MkpGroup *node, AnjutaToken *token, MkpGroupTokenCategory category)
+mkp_group_add_token (MkpGroup *group, AnjutaToken *token, MkpGroupTokenCategory category)
 {
-    MkpGroupData *group;
-	
-	g_return_if_fail ((node != NULL) && (node->data != NULL)); 
-
- 	group = MKP_GROUP_DATA (node);
 	group->tokens[category] = g_list_prepend (group->tokens[category], token);
 }
 
 static GList *
-mkp_group_get_token (MkpGroup *node, MkpGroupTokenCategory category)
+mkp_group_get_token (MkpGroup *group, MkpGroupTokenCategory category)
 {
-    MkpGroupData *group;
-	
-	g_return_val_if_fail ((node != NULL) && (node->data != NULL), NULL); 
-
- 	group = MKP_GROUP_DATA (node);
 	return group->tokens[category];
 }
 
 static AnjutaTokenFile*
-mkp_group_set_makefile (MkpGroup *node, GFile *makefile)
+mkp_group_set_makefile (MkpGroup *group, GFile *makefile)
 {
-    MkpGroupData *group;
-	
-	g_return_val_if_fail ((node != NULL) && (node->data != NULL), NULL); 
-
- 	group = MKP_GROUP_DATA (node);
 	if (group->makefile != NULL) g_object_unref (group->makefile);
 	if (group->tfile != NULL) anjuta_token_file_free (group->tfile);
 	if (makefile != NULL)
@@ -360,57 +326,30 @@ mkp_group_set_makefile (MkpGroup *node, GFile *makefile)
 static MkpGroup*
 mkp_group_new (GFile *file)
 {
-    MkpGroupData *group = NULL;
-
-	g_return_val_if_fail (file != NULL, NULL);
-	
-	group = g_slice_new0(MkpGroupData); 
-	group->base.type = ANJUTA_PROJECT_GROUP;
+	MkpGroup *group = g_object_new (ANJUTA_PROJECT_GROUP, NULL);;
 	group->base.file = g_object_ref (file);
 
-    return g_node_new (group);
+    return group;
 }
 
 static void
-mkp_group_free (MkpGroup *node)
+mkp_group_free (MkpGroup *group)
 {
-    MkpGroupData *group = (MkpGroupData *)node->data;
-	gint i;
-	
-	if (group->base.file) g_object_unref (group->base.file);
-	if (group->tfile) anjuta_token_file_free (group->tfile);
-	if (group->makefile) g_object_unref (group->makefile);
-	for (i = 0; i < AM_GROUP_TOKEN_LAST; i++)
-	{
-		if (group->tokens[i] != NULL) g_list_free (group->tokens[i]);
-	}
-    g_slice_free (MkpGroupData, group);
-
-	g_node_destroy (node);
+	g_object_unref (G_OBJECT (group));
 }
 
 /* Target objects
  *---------------------------------------------------------------------------*/
 
 void
-mkp_target_add_token (MkpGroup *node, AnjutaToken *token)
+mkp_target_add_token (MkpTarget *target, AnjutaToken *token)
 {
-    MkpTargetData *target;
-	
-	g_return_if_fail ((node != NULL) && (node->data != NULL)); 
-
- 	target = MKP_TARGET_DATA (node);
 	target->tokens = g_list_prepend (target->tokens, token);
 }
 
 static GList *
-mkp_target_get_token (MkpGroup *node)
+mkp_target_get_token (MkpTarget *target)
 {
-    MkpTargetData *target;
-	
-	g_return_val_if_fail ((node != NULL) && (node->data != NULL), NULL); 
-
- 	target = MKP_TARGET_DATA (node);
 	return target->tokens;
 }
 
@@ -418,25 +357,18 @@ mkp_target_get_token (MkpGroup *node)
 MkpTarget*
 mkp_target_new (const gchar *name, AnjutaProjectNodeType type)
 {
-    MkpTargetData *target = NULL;
+    MkpTarget *target = NULL;
 
-	target = g_slice_new0(MkpTargetData);
-	target->base.type = type | ANJUTA_PROJECT_TARGET;
+	target = g_object_new (ANJUTA_PROJECT_TARGET, NULL);
 	target->base.name = g_strdup (name);
 
-    return g_node_new (target);
+    return target;
 }
 
 void
 mkp_target_free (MkpTarget *node)
 {
-    MkpTargetData *target = MKP_TARGET_DATA (node);
-	
-    g_free (target->base.name);
-    g_free (target->install);
-    g_slice_free (MkpTargetData, target);
-
-	g_node_destroy (node);
+	g_object_unref (node);
 }
 
 /* Source objects
@@ -445,24 +377,18 @@ mkp_target_free (MkpTarget *node)
 MkpSource*
 mkp_source_new (GFile *file)
 {
-    MkpSourceData *source = NULL;
+    MkpSource *source = NULL;
 
-	source = g_slice_new0(MkpSourceData); 
-	source->base.type = ANJUTA_PROJECT_SOURCE;
+	source = g_object_new (ANJUTA_PROJECT_SOURCE, NULL);
 	source->base.file = g_object_ref (file);
 
-    return g_node_new (source);
+    return source;
 }
 
 static void
 mkp_source_free (MkpSource *node)
 {
-    MkpSourceData *source = MKP_SOURCE_DATA (node);
-	
-    g_object_unref (source->base.file);
-    g_slice_free (MkpSourceData, source);
-
-	g_node_destroy (node);
+    g_object_unref (node);
 }
 
 /*
@@ -548,7 +474,7 @@ group_hash_foreach_monitor (gpointer key,
 	MkpGroup *group_node = value;
 	MkpProject *project = user_data;
 
-	monitor_add (project, MKP_GROUP_DATA(group_node)->base.file);
+	monitor_add (project, group_node->base.file);
 }
 
 static void
@@ -577,17 +503,17 @@ mkp_dump_node (AnjutaProjectNode *g_node)
 {
 	gchar *name = NULL;
 	
-	switch (MKP_NODE_DATA (g_node)->type) {
+	switch (g_node->type) {
 		case ANJUTA_PROJECT_GROUP:
-			name = g_file_get_uri (MKP_GROUP_DATA (g_node)->base.file);
+			name = g_file_get_uri (g_node->file);
 			DEBUG_PRINT ("GROUP: %s", name);
 			break;
 		case ANJUTA_PROJECT_TARGET:
-			name = g_strdup (MKP_TARGET_DATA (g_node)->base.name);
+			name = g_strdup (g_node->name);
 			DEBUG_PRINT ("TARGET: %s", name);
 			break;
 		case ANJUTA_PROJECT_SOURCE:
-			name = g_file_get_uri (MKP_SOURCE_DATA (g_node)->base.file);
+			name = g_file_get_uri (g_node->file);
 			DEBUG_PRINT ("SOURCE: %s", name);
 			break;
 		default:
@@ -601,15 +527,15 @@ static void
 foreach_node_destroy (AnjutaProjectNode    *g_node,
 		      gpointer  data)
 {
-	switch (MKP_NODE_DATA (g_node)->type) {
+	switch (g_node->type) {
 		case ANJUTA_PROJECT_GROUP:
-			mkp_group_free (g_node);
+			mkp_group_free ((MkpGroup *) g_node);
 			break;
 		case ANJUTA_PROJECT_TARGET:
-			mkp_target_free (g_node);
+			mkp_target_free ((MkpTarget *) g_node);
 			break;
 		case ANJUTA_PROJECT_SOURCE:
-			mkp_source_free (g_node);
+			mkp_source_free ((MkpSource *) g_node);
 			break;
 		case ANJUTA_PROJECT_ROOT:
 			mkp_root_free (g_node);
@@ -628,7 +554,7 @@ project_node_destroy (MkpProject *project, AnjutaProjectNode *g_node)
 	
 	if (g_node) {
 		/* free each node's data first */
-		anjuta_project_node_all_foreach (g_node,
+		anjuta_project_node_foreach (g_node, G_POST_ORDER,
 				 foreach_node_destroy, project);
 
 		/* now destroy the tree itself */
@@ -643,22 +569,22 @@ project_node_new (MkpProject *project, AnjutaProjectNodeType type, GFile *file,
 	
 	switch (type & ANJUTA_PROJECT_TYPE_MASK) {
 		case ANJUTA_PROJECT_GROUP:
-			node = mkp_group_new (file);
+			node = ANJUTA_PROJECT_NODE (mkp_group_new (file));
 			break;
 		case ANJUTA_PROJECT_TARGET:
-			node = mkp_target_new (name, 0);
+			node = ANJUTA_PROJECT_NODE (mkp_target_new (name, 0));
 			break;
 		case ANJUTA_PROJECT_SOURCE:
-			node = mkp_source_new (file);
+			node = ANJUTA_PROJECT_NODE (mkp_source_new (file));
 			break;
 		case ANJUTA_PROJECT_ROOT:
-			node = mkp_root_new (file);
+			node = ANJUTA_PROJECT_NODE (mkp_root_new (file));
 			break;
 		default:
 			g_assert_not_reached ();
 			break;
 	}
-	if (node != NULL) MKP_NODE_DATA (node)->type = type;
+	if (node != NULL) node->type = type;
 
 	return node;
 }
@@ -666,9 +592,9 @@ project_node_new (MkpProject *project, AnjutaProjectNodeType type, GFile *file,
 static void
 find_target (AnjutaProjectNode *node, gpointer data)
 {
-	if (MKP_NODE_DATA (node)->type == ANJUTA_PROJECT_TARGET)
+	if (node->type == ANJUTA_PROJECT_TARGET)
 	{
-		if (strcmp (MKP_TARGET_DATA (node)->base.name, *(gchar **)data) == 0)
+		if (strcmp (node->name, *(gchar **)data) == 0)
 		{
 			/* Find target, return node value in pointer */
 			*(AnjutaProjectNode **)data = node;
@@ -812,7 +738,7 @@ mkp_project_get_node_id (MkpProject *project, const gchar *path)
 
 			if (node == NULL)
 			{
-				if (child == 0) node = project->root_node;
+				if (child == 0) node = ANJUTA_PROJECT_NODE (project->root_node);
 			}
 			else
 			{
@@ -829,10 +755,10 @@ mkp_project_get_node_id (MkpProject *project, const gchar *path)
 		}
 	}
 
-	switch (MKP_NODE_DATA (node)->type)
+	switch (node->type)
 	{
 		case ANJUTA_PROJECT_GROUP:
-			return g_file_get_uri (MKP_GROUP_DATA (node)->base.file);
+			return g_file_get_uri (node->file);
 		case ANJUTA_PROJECT_TARGET:
 		case ANJUTA_PROJECT_SOURCE:
 			return g_base64_encode ((guchar *)&node, sizeof (node));
@@ -902,19 +828,19 @@ mkp_project_get_token_location (MkpProject *project, AnjutaTokenFileLocation *lo
 GFile*
 mkp_group_get_directory (MkpGroup *group)
 {
-	return MKP_GROUP_DATA (group)->base.file;
+	return group->base.file;
 }
 
 GFile*
 mkp_group_get_makefile (MkpGroup *group)
 {
-	return MKP_GROUP_DATA (group)->makefile;
+	return group->makefile;
 }
 
 gchar *
 mkp_group_get_id (MkpGroup *group)
 {
-	return g_file_get_uri (MKP_GROUP_DATA (group)->base.file);
+	return g_file_get_uri (group->base.file);
 }
 
 /* Target access functions
@@ -923,7 +849,7 @@ mkp_group_get_id (MkpGroup *group)
 const gchar *
 mkp_target_get_name (MkpTarget *target)
 {
-	return MKP_TARGET_DATA (target)->base.name;
+	return target->base.name;
 }
 
 gchar *
@@ -944,7 +870,7 @@ mkp_source_get_id (MkpSource *source)
 GFile*
 mkp_source_get_file (MkpSource *source)
 {
-	return MKP_SOURCE_DATA (source)->base.file;
+	return source->base.file;
 }
 
 /* Variable access functions
@@ -1122,17 +1048,18 @@ mkp_project_load_root (MkpProject *project, AnjutaProjectNode *node, GError **er
 	g_object_unref (make_file);
 
 	monitors_setup (project);
-	
+	project->loading--;
 	
 	return node;
 }
 
-AnjutaProjectNode *
+static gboolean
 mkp_project_load_node (MkpProject *project, AnjutaProjectNode *node, GError **error) 
 {
 	switch (anjuta_project_node_get_node_type (node))
 	{
 	case ANJUTA_PROJECT_ROOT:
+		project->loading++;
 		return mkp_project_load_root (project, node, error);
 	default:
 		return NULL;
@@ -1324,11 +1251,11 @@ mkp_project_move (MkpProject *project, const gchar *path)
 	{
 		MkpGroup *group = (MkpGroup *)value;
 		
-		relative = get_relative_path (old_root_file, MKP_GROUP_DATA (group)->base.file);
+		relative = get_relative_path (old_root_file, group->base.file);
 		new_file = g_file_resolve_relative_path (project->root_file, relative);
 		g_free (relative);
-		g_object_unref (MKP_GROUP_DATA (group)->base.file);
-		MKP_GROUP_DATA (group)->base.file = new_file;
+		g_object_unref (group->base.file);
+		group->base.file = new_file;
 
 		g_hash_table_insert (project->groups, g_file_get_uri (new_file), group);
 	}
@@ -1362,19 +1289,28 @@ mkp_project_new (void)
 	return MKP_PROJECT (g_object_new (MKP_TYPE_PROJECT, NULL));
 }
 
+gboolean
+mkp_project_is_loaded (MkpProject *project)
+{
+	return project->loading == 0;
+}
+
+
 /* Implement IAnjutaProject
  *---------------------------------------------------------------------------*/
 
-static AnjutaProjectNode *
+static gboolean
 iproject_load_node (IAnjutaProject *obj, AnjutaProjectNode *node, GError **err)
 {
+	if (node == NULL) node = ANJUTA_PROJECT_NODE (obj);
+
 	return mkp_project_load_node (MKP_PROJECT (obj), node, err);
 }
 
-static AnjutaProjectNode *
+static gboolean
 iproject_save_node (IAnjutaProject *obj, AnjutaProjectNode *node, GError **err)
 {
-	return NULL;
+	return TRUE;
 }
 
 static gboolean
@@ -1394,20 +1330,15 @@ iproject_get_node_info (IAnjutaProject *obj, GError **err)
 }
 
 static AnjutaProjectNode *
-iproject_new_node (IAnjutaProject *obj, AnjutaProjectNode *parent, AnjutaProjectNodeType type, GFile *file, const gchar *name, GError **err)
+iproject_get_root (IAnjutaProject *obj, GError **err)
 {
-	AnjutaProjectNode *node;
-
-	node = project_node_new (MKP_PROJECT (obj), type, file, name);
-	node->parent = parent;
-	
-	return node;
+	return ANJUTA_PROJECT_NODE (obj);
 }
 
-static void
-iproject_free_node (IAnjutaProject *obj, AnjutaProjectNode *node, GError **err)
+static gboolean
+iproject_is_loaded (IAnjutaProject *obj, GError **err)
 {
-	project_node_destroy (MKP_PROJECT (obj), node);
+	return mkp_project_is_loaded (MKP_PROJECT (obj));
 }
 
 static void
@@ -1417,8 +1348,20 @@ iproject_iface_init(IAnjutaProjectIface* iface)
 	iface->save_node = iproject_save_node;
 	iface->set_property = iproject_set_property;
 	iface->get_node_info = iproject_get_node_info;
-	iface->new_node = iproject_new_node;
-	iface->free_node = iproject_free_node;
+	iface->get_root = iproject_get_root;
+
+	iface->is_loaded = iproject_is_loaded;
+
+	/* XXXnancibonfim: lacks
+	iface->remove_node = iproject_remove_node;
+
+	iface->add_node_before = iproject_add_node_before;
+	iface->add_node_after = iproject_add_node_after;
+
+	iface->remove_property = iproject_remove_property;
+
+	*/
+	
 }
 
 /* GObject implementation
diff --git a/plugins/mk-project/mk-project.h b/plugins/mk-project/mk-project.h
index 437ab6b..bab9948 100644
--- a/plugins/mk-project/mk-project.h
+++ b/plugins/mk-project/mk-project.h
@@ -43,6 +43,8 @@ G_BEGIN_DECLS
 #define MKP_TARGET(obj)		((MkpTarget *)obj)
 #define MKP_SOURCE(obj)		((MkpSource *)obj)
 
+GType         mkp_project_get_type (void);
+
 typedef struct _MkpProject        MkpProject;
 typedef struct _MkpProjectClass   MkpProjectClass;
 
@@ -50,9 +52,9 @@ struct _MkpProjectClass {
 	GObjectClass parent_class;
 };
 
-typedef AnjutaProjectNode MkpGroup;
-typedef AnjutaProjectNode MkpTarget;
-typedef AnjutaProjectNode MkpSource;
+typedef struct _MkpGroup MkpGroup;
+typedef struct _MkpTarget MkpTarget;
+typedef struct _MkpSource MkpSource;
 typedef struct _MkpProperty MkpProperty;
 typedef struct _MkpVariable MkpVariable;
 typedef struct _MkpRule MkpRule;
@@ -72,7 +74,7 @@ MkpProject   *mkp_project_new      (void);
 
 gint mkp_project_probe (GFile *directory, GError     **error);
 gboolean mkp_project_load (MkpProject *project, GFile *directory, GError **error);
-AnjutaProjectNode *mkp_project_load_node (MkpProject *project, AnjutaProjectNode *node, GError **error);
+static gboolean mkp_project_load_node (MkpProject *project, AnjutaProjectNode *node, GError **error);
 gboolean mkp_project_reload (MkpProject *project, GError **error);
 void mkp_project_unload (MkpProject *project);
 
diff --git a/plugins/mk-project/mk-rule.c b/plugins/mk-project/mk-rule.c
index de25db7..cb3c5f6 100644
--- a/plugins/mk-project/mk-rule.c
+++ b/plugins/mk-project/mk-rule.c
@@ -125,7 +125,7 @@ mkp_project_find_source (MkpProject *project, gchar *target, AnjutaProjectNode *
 		}
 	}
 		
-	child = g_file_get_child (anjuta_project_group_get_directory (parent), target);
+	child = g_file_get_child (anjuta_project_node_get_file (parent), target);
 	exist = g_file_query_exists (child, NULL);
 	g_message ("target =%s= filename =%s=", target, g_file_get_parse_name (child));
 	g_object_unref (child);
diff --git a/plugins/mk-project/mk-rule.h b/plugins/mk-project/mk-rule.h
index 88a29cd..ee1b84d 100644
--- a/plugins/mk-project/mk-rule.h
+++ b/plugins/mk-project/mk-rule.h
@@ -31,7 +31,7 @@ G_BEGIN_DECLS
 
 void mkp_project_init_rules (MkpProject *project);
 void mkp_project_free_rules (MkpProject *project);
-void mkp_project_enumerate_targets (MkpProject *project, MkpGroup *parent);
+void mkp_project_enumerate_targets (MkpProject *project, AnjutaProjectNode *parent);
 void mkp_project_add_rule (MkpProject *project, AnjutaToken *group);
 
 
diff --git a/plugins/mk-project/plugin.c b/plugins/mk-project/plugin.c
index 99dd108..f3a4186 100644
--- a/plugins/mk-project/plugin.c
+++ b/plugins/mk-project/plugin.c
@@ -20,7 +20,6 @@
 
 #include <config.h>
 #include <libanjuta/anjuta-debug.h>
-#include <libanjuta/gbf-project.h>
 #include <libanjuta/interfaces/ianjuta-project-backend.h>
 
 #include "plugin.h"
diff --git a/plugins/mk-project/plugin.h b/plugins/mk-project/plugin.h
index 0059cd0..77c2c90 100644
--- a/plugins/mk-project/plugin.h
+++ b/plugins/mk-project/plugin.h
@@ -23,7 +23,7 @@
 
 #include <libanjuta/anjuta-plugin.h>
 
-extern GType amp_plugin_get_type (GTypeModule *module);
+extern GType mkp_plugin_get_type (GTypeModule *module);
 #define ANJUTA_TYPE_PLUGIN_MKP         (mkp_plugin_get_type (NULL))
 #define ANJUTA_PLUGIN_MKP(o)           (G_TYPE_CHECK_INSTANCE_CAST ((o), ANJUTA_TYPE_PLUGIN_MKP, MkpPlugin))
 #define ANJUTA_PLUGIN_MKP_CLASS(k)     (G_TYPE_CHECK_CLASS_CAST ((k), ANJUTA_TYPE_PLUGIN_MKP, MkpPluginClass))
