[f-spot] Move all of Core into src/Core/FSpot.Core/



commit ef7bb3a771d00f0bbdaae3882fe2ff4c43390512
Author: Ruben Vermeersch <ruben savanne be>
Date:   Sun Aug 8 13:03:48 2010 +0200

    Move all of Core into src/Core/FSpot.Core/
    
    First step towards a full restructuring of the tree.

 configure.ac                                       |    8 +-
 extensions/Exporters/CDExport/CDExport.cs          |    1 +
 .../Exporters/FacebookExport/FacebookExport.cs     |    1 +
 .../FacebookExport/FacebookExportDialog.cs         |    1 +
 extensions/Exporters/FlickrExport/FlickrExport.cs  |    1 +
 extensions/Exporters/FlickrExport/FlickrRemote.cs  |    5 +-
 extensions/Exporters/FolderExport/FolderExport.cs  |   19 +-
 extensions/Exporters/GalleryExport/FormClient.cs   |    1 +
 .../Exporters/GalleryExport/GalleryExport.cs       |    3 +-
 .../Exporters/GalleryExport/GalleryRemote.cs       |    5 +-
 .../Exporters/PicasaWebExport/PicasaWebExport.cs   |    1 +
 .../Exporters/SmugMugExport/SmugMugExport.cs       |    1 +
 extensions/Exporters/TabbloExport/TabbloExport.cs  |   15 +-
 .../Exporters/TabbloExport/TabbloExportModel.cs    |   31 ++--
 .../Exporters/TabbloExport/TabbloExportView.cs     |    3 +-
 extensions/Exporters/ZipExport/ZipExport.cs        |    3 +-
 .../ChangePhotoPath/ChangePhotoPathController.cs   |    3 +-
 extensions/Tools/DevelopInUFraw/DevelopInUFRaw.cs  |    9 +-
 .../Tools/LiveWebGallery/GalleryRequestHandler.cs  |    1 +
 extensions/Tools/LiveWebGallery/LiveWebGallery.cs  |    1 +
 .../Tools/LiveWebGallery/LiveWebGalleryDialog.cs   |    1 +
 extensions/Tools/MergeDb/MergeDb.cs                |    5 +-
 extensions/Tools/MergeDb/MergeDbDialog.cs          |    1 +
 extensions/Tools/RawPlusJpeg/RawPlusJpeg.cs        |    1 +
 .../Tools/RetroactiveRoll/RetroactiveRoll.cs       |    1 +
 .../Tools/ScreensaverConfig/ScreensaverConfig.cs   |    1 +
 po/POTFILES.in                                     |    4 +-
 src/{Core => }/App.cs                              |   18 +-
 src/{Core => }/ColorManagement.cs                  |    3 +-
 src/ControlOverlay.cs                              |    1 +
 src/Core/{ => FSpot.Core}/FSpot.Core.dll.config.in |    0
 .../FSpot.Core}/BrowsableCollectionProxy.cs        |    2 +-
 .../FSpot.Core}/BrowsableEventArgs.cs              |    4 +-
 .../FSpot.Core}/BrowsablePointer.cs                |   28 ++--
 .../BrowsablePointerChangedEventArgs.cs            |    4 +-
 src/Core/{ => FSpot.Core/FSpot.Core}/Category.cs   |   16 +-
 src/Core/{ => FSpot.Core/FSpot.Core}/DbItem.cs     |    4 +-
 src/Core/FSpot.Core/FSpot.Core/Defines.cs          |   20 +++
 src/Core/{ => FSpot.Core/FSpot.Core}/Defines.cs.in |    8 +-
 src/Core/{ => FSpot.Core/FSpot.Core}/Delay.cs      |   22 ++--
 .../FSpot.Core}/FileBrowsableItem.cs               |    2 +-
 src/Core/{ => FSpot.Core/FSpot.Core}/Global.cs     |    8 +-
 .../FSpot.Core}/IBrowsableCollection.cs            |    9 +-
 .../{ => FSpot.Core/FSpot.Core}/IBrowsableItem.cs  |    4 +-
 .../FSpot.Core}/IBrowsableItemChanges.cs           |    8 +-
 .../FSpot.Core}/IBrowsableItemComparer.cs          |    2 +-
 .../FSpot.Core}/IBrowsableItemExtensions.cs        |    2 +-
 .../FSpot.Core}/IBrowsableItemVersion.cs           |    8 +-
 .../FSpot.Core}/IBrowsableItemVersionable.cs       |    4 +-
 src/Core/{ => FSpot.Core/FSpot.Core}/ILoadable.cs  |    2 +-
 .../{ => FSpot.Core/FSpot.Core}/PhotoChanges.cs    |    2 +-
 .../{ => FSpot.Core/FSpot.Core}/PhotosChanges.cs   |   10 +-
 src/Core/{ => FSpot.Core/FSpot.Core}/Roll.cs       |    4 +-
 src/Core/{ => FSpot.Core/FSpot.Core}/Tag.cs        |   46 +++---
 src/Core/FSpot.Core/Makefile.am                    |   34 ++++
 src/Core/Makefile.am                               |   36 +----
 src/Db.cs                                          |    1 +
 src/Editors/CropEditor.cs                          |    2 +-
 src/Editors/Editor.cs                              |    1 +
 src/ExportStore.cs                                 |    1 +
 src/Extensions/IExporter.cs                        |    2 +
 src/FullScreenView.cs                              |    1 +
 src/GroupAdaptor.cs                                |    5 +-
 src/GroupSelector.cs                               |    1 +
 src/Import/FileImportSource.cs                     |    1 +
 src/Import/ImportController.cs                     |    1 +
 src/Import/MetadataImporter.cs                     |    1 +
 src/InfoOverlay.cs                                 |    1 +
 src/ItemAction.cs                                  |    1 +
 src/JobStore.cs                                    |    1 +
 src/Jobs/SyncMetadataJob.cs                        |    3 +-
 src/Loupe.cs                                       |    1 +
 src/MainWindow.cs                                  |    5 +-
 src/Makefile.am                                    |    8 +-
 src/MetaStore.cs                                   |    7 +-
 src/{Core => }/Photo.cs                            |  177 ++++++++++----------
 src/PhotoEventArgs.cs                              |    2 +
 src/PhotoImageView.cs                              |    1 +
 src/PhotoList.cs                                   |    2 +
 src/PhotoLoader.cs                                 |    1 +
 src/PhotoQuery.cs                                  |    7 +-
 src/PhotoStore.cs                                  |    1 +
 src/PhotoTagMenu.cs                                |    1 +
 src/{Core => }/PhotoVersion.cs                     |    3 +-
 src/PhotoVersionMenu.cs                            |    1 +
 src/PhotoView.cs                                   |    7 +-
 src/PixbufUtils.cs                                 |    5 +-
 src/Preferences.cs                                 |    3 +-
 src/PrintOperation.cs                              |    3 +-
 src/Query/HiddenTag.cs                             |    1 +
 src/Query/LogicalTerm.cs                           |    1 +
 src/Query/RollSet.cs                               |    2 +
 src/Query/Tests/LogicalTermTests.cs                |    1 +
 src/QueryWidget.cs                                 |    1 +
 src/RollStore.cs                                   |    1 +
 src/RotateCommand.cs                               |    1 +
 src/SelectionDataExtensions.cs                     |    1 +
 src/SendEmail.cs                                   |    1 +
 src/SingleView.cs                                  |    3 +-
 src/TagCommands.cs                                 |    1 +
 src/TagPopup.cs                                    |    1 +
 src/TagQueryWidget.cs                              |    1 +
 src/TagSelectionWidget.cs                          |    1 +
 src/TagStore.cs                                    |    1 +
 src/Term.cs                                        |    1 +
 src/ThumbnailCommand.cs                            |    1 +
 src/TimeAdaptor.cs                                 |    5 +-
 src/UI.Dialog/AboutDialog.cs                       |    2 +-
 src/UI.Dialog/AdjustTimeDialog.cs                  |    1 +
 src/UI.Dialog/EditExceptionDialog.cs               |    1 +
 src/UI.Dialog/EditTagDialog.cs                     |    1 +
 src/UI.Dialog/EditTagIconDialog.cs                 |   11 +-
 src/UI.Dialog/ImportDialog.cs                      |    3 +-
 src/UI.Dialog/LastRollDialog.cs                    |    1 +
 src/UI.Dialog/PreferenceDialog.cs                  |   12 +-
 src/UI.Dialog/RepairDialog.cs                      |    2 +
 src/UI.Dialog/TagSelectionDialog.cs                |    2 +
 src/UI.Dialog/ThreadProgressDialog.cs              |    4 +-
 src/UriCollection.cs                               |    1 +
 src/Util.cs                                        |    7 +-
 src/Widgets/CustomPrintWidget.cs                   |    2 +-
 src/Widgets/EditorPage.cs                          |    5 +-
 src/Widgets/Filmstrip.cs                           |    9 +-
 src/Widgets/FindBar.cs                             |    1 +
 src/Widgets/FolderTreeModel.cs                     |    1 +
 src/Widgets/IconView.cs                            |   19 +-
 src/Widgets/InfoBox.cs                             |    1 +
 src/Widgets/MetadataDisplay.cs                     |    1 +
 src/Widgets/PreviewPopup.cs                        |    3 +-
 src/Widgets/QueryView.cs                           |    4 +-
 src/Widgets/Rating.cs                              |    8 +-
 src/Widgets/ScalingIconView.cs                     |    1 +
 src/Widgets/ScrolledView.cs                        |    1 +
 src/Widgets/Sidebar.cs                             |    1 +
 src/Widgets/SlideShow.cs                           |    1 +
 src/Widgets/TagEntry.cs                            |    1 +
 src/Widgets/TagMenu.cs                             |    1 +
 src/Widgets/TagView.cs                             |    1 +
 src/Widgets/TrayView.cs                            |    4 +-
 src/main.cs                                        |   27 ++--
 140 files changed, 500 insertions(+), 361 deletions(-)
---
diff --git a/configure.ac b/configure.ac
index 91cadde..2f72f7d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -349,6 +349,11 @@ lib/Hyena/Hyena.Data.Sqlite/Makefile
 lib/Hyena/Hyena.Gui/Makefile
 lib/TagLib/Makefile
 
+src/Core/Makefile
+src/Core/FSpot.Core/Makefile
+src/Core/FSpot.Core/FSpot.Core.dll.config
+src/Core/FSpot.Core/FSpot.Core/Defines.cs
+
 docs/Makefile
 icons/Makefile
 tools/Makefile
@@ -359,9 +364,6 @@ src/Utils/Makefile
 src/Bling/Makefile
 src/JobScheduler/Makefile
 src/Query/Makefile
-src/Core/Defines.cs
-src/Core/Makefile
-src/Core/FSpot.Core.dll.config
 src/FSpot.Database/Makefile
 src/Widgets/Makefile
 src/Widgets/FSpot.Widgets.dll.config
diff --git a/extensions/Exporters/CDExport/CDExport.cs b/extensions/Exporters/CDExport/CDExport.cs
index 3c88b7d..a636780 100644
--- a/extensions/Exporters/CDExport/CDExport.cs
+++ b/extensions/Exporters/CDExport/CDExport.cs
@@ -18,6 +18,7 @@ using System.Runtime.InteropServices;
 using Mono.Unix;
 
 using FSpot;
+using FSpot.Core;
 using FSpot.Filters;
 using FSpot.Widgets;
 using Hyena;
diff --git a/extensions/Exporters/FacebookExport/FacebookExport.cs b/extensions/Exporters/FacebookExport/FacebookExport.cs
index 5b97690..5528fcd 100644
--- a/extensions/Exporters/FacebookExport/FacebookExport.cs
+++ b/extensions/Exporters/FacebookExport/FacebookExport.cs
@@ -28,6 +28,7 @@ using Gnome.Keyring;
 using GtkBeans;
 
 using FSpot;
+using FSpot.Core;
 using Hyena;
 using Hyena.Widgets;
 using FSpot.UI.Dialog;
diff --git a/extensions/Exporters/FacebookExport/FacebookExportDialog.cs b/extensions/Exporters/FacebookExport/FacebookExportDialog.cs
index 9cc7fa7..e4b1f45 100644
--- a/extensions/Exporters/FacebookExport/FacebookExportDialog.cs
+++ b/extensions/Exporters/FacebookExport/FacebookExportDialog.cs
@@ -24,6 +24,7 @@ using GtkBeans;
 
 using Hyena;
 using Hyena.Widgets;
+using FSpot.Core;
 using FSpot.Utils;
 using FSpot.Platform;
 using FSpot.UI.Dialog;
diff --git a/extensions/Exporters/FlickrExport/FlickrExport.cs b/extensions/Exporters/FlickrExport/FlickrExport.cs
index 48e8a31..64de9f0 100644
--- a/extensions/Exporters/FlickrExport/FlickrExport.cs
+++ b/extensions/Exporters/FlickrExport/FlickrExport.cs
@@ -6,6 +6,7 @@ using System.Threading;
 using Mono.Unix;
 
 using FSpot;
+using FSpot.Core;
 using FSpot.Filters;
 using FSpot.Widgets;
 using FSpot.Utils;
diff --git a/extensions/Exporters/FlickrExport/FlickrRemote.cs b/extensions/Exporters/FlickrExport/FlickrRemote.cs
index 3e4ea96..4fc2861 100644
--- a/extensions/Exporters/FlickrExport/FlickrRemote.cs
+++ b/extensions/Exporters/FlickrExport/FlickrRemote.cs
@@ -15,6 +15,7 @@ using System.Text;
 using System.Collections;
 using FlickrNet;
 using FSpot;
+using FSpot.Core;
 using FSpot.Utils;
 using FSpot.Filters;
 using Hyena;
@@ -151,8 +152,8 @@ public class FlickrRemote {
 
 				if (ExportTags && photo.Tags != null) {
 					StringBuilder taglist = new StringBuilder ();
-					FSpot.Tag [] t = photo.Tags;
-					FSpot.Tag tag_iter = null;
+					FSpot.Core.Tag [] t = photo.Tags;
+					FSpot.Core.Tag tag_iter = null;
 
 					for (int i = 0; i < t.Length; i++) {
 						if (i > 0)
diff --git a/extensions/Exporters/FolderExport/FolderExport.cs b/extensions/Exporters/FolderExport/FolderExport.cs
index dbb5252..4fe9cc4 100644
--- a/extensions/Exporters/FolderExport/FolderExport.cs
+++ b/extensions/Exporters/FolderExport/FolderExport.cs
@@ -33,6 +33,7 @@ using ICSharpCode.SharpZipLib.Zip;
 using ICSharpCode.SharpZipLib.GZip;
 
 using FSpot;
+using FSpot.Core;
 using FSpot.Filters;
 using FSpot.Widgets;
 using FSpot.Utils;
@@ -110,9 +111,9 @@ namespace FSpotFolderExport {
 			HandleSizeActive (null, null);
 			name_entry.Text = gallery_name;
 
-			string uri_path = System.IO.Path.Combine (FSpot.Global.HomeDirectory, "Desktop");
+			string uri_path = System.IO.Path.Combine (FSpot.Core.Global.HomeDirectory, "Desktop");
 			if (!System.IO.Directory.Exists (uri_path))
-			        uri_path = FSpot.Global.HomeDirectory;
+			        uri_path = FSpot.Core.Global.HomeDirectory;
 
 			uri_chooser = new Gtk.FileChooserButton (Catalog.GetString ("Select Export Folder"),
 								 Gtk.FileChooserAction.SelectFolder);
@@ -1010,7 +1011,7 @@ namespace FSpotFolderExport {
 
 			writer.AddAttribute ("href", "http://f-spot.org";);
 			writer.RenderBeginTag ("a");
-			writer.Write (String.Format ("{0} {1}", FSpot.Defines.PACKAGE, FSpot.Defines.VERSION));
+			writer.Write (String.Format ("{0} {1}", FSpot.Core.Defines.PACKAGE, FSpot.Core.Defines.VERSION));
 			writer.RenderEndTag ();
 
 			writer.RenderEndTag ();
@@ -1052,7 +1053,7 @@ namespace FSpotFolderExport {
 			writer.RenderEndTag (); //div styleboxcontainer
 		}
 
-		public void WriteTagsLinks (System.Web.UI.HtmlTextWriter writer, FSpot.Tag[] tags)
+		public void WriteTagsLinks (System.Web.UI.HtmlTextWriter writer, Tag[] tags)
 		{
 			ArrayList tagsList = new ArrayList (tags.Length);
 			foreach (var tag in tags) {
@@ -1075,7 +1076,7 @@ namespace FSpotFolderExport {
 			writer.RenderEndTag (); //h1
 			writer.AddAttribute ("id", "innertagbox");
 			writer.RenderBeginTag ("ul");
-			foreach (FSpot.Tag tag in tags) {
+			foreach (Tag tag in tags) {
 				writer.AddAttribute ("class", "tag");
 				writer.RenderBeginTag ("li");
 				writer.AddAttribute ("href", TagIndexPath (tag.Name, 0));
@@ -1273,11 +1274,11 @@ namespace FSpotFolderExport {
 		public void SaveTagIcons ()
 		{
 			MakeDir (SubdirPath ("tags"));
-			foreach (FSpot.Tag tag in allTags.Values)
+			foreach (Tag tag in allTags.Values)
 				SaveTagIcon (tag);
 		}
 
-		public void SaveTagIcon (FSpot.Tag tag) {
+		public void SaveTagIcon (Tag tag) {
 			Gdk.Pixbuf icon = tag.Icon;
 			Gdk.Pixbuf scaled = null;
 			if (icon.Height != 52 || icon.Width != 52) {
@@ -1288,12 +1289,12 @@ namespace FSpotFolderExport {
 			scaled.Dispose ();
 		}
 
-		public string TagPath (FSpot.Tag tag)
+		public string TagPath (Tag tag)
 		{
 			return System.IO.Path.Combine("tags",TagName(tag));
 		}
 
-		public string TagName (FSpot.Tag tag)
+		public string TagName (Tag tag)
 		{
 			return "tag_"+ ((DbItem)tag).Id+".png";
 		}
diff --git a/extensions/Exporters/GalleryExport/FormClient.cs b/extensions/Exporters/GalleryExport/FormClient.cs
index 3595c71..2dfc5bd 100644
--- a/extensions/Exporters/GalleryExport/FormClient.cs
+++ b/extensions/Exporters/GalleryExport/FormClient.cs
@@ -6,6 +6,7 @@ using System.Collections;
 using System.Collections.Specialized;
 using System.Web;
 using Hyena;
+using FSpot.Core;
 
 namespace FSpot {
 	public class FormClient {
diff --git a/extensions/Exporters/GalleryExport/GalleryExport.cs b/extensions/Exporters/GalleryExport/GalleryExport.cs
index 8d5f80a..6c94ebb 100644
--- a/extensions/Exporters/GalleryExport/GalleryExport.cs
+++ b/extensions/Exporters/GalleryExport/GalleryExport.cs
@@ -8,6 +8,7 @@ using System.Web;
 using Mono.Unix;
 
 using FSpot;
+using FSpot.Core;
 using FSpot.Filters;
 using FSpot.Widgets;
 using FSpot.Utils;
@@ -172,7 +173,7 @@ namespace G2Export {
 		private GalleryAccountManager ()
 		{
 			// FIXME this xml file path should be be retrieved from a central location not hard coded there
-			this.xml_path = System.IO.Path.Combine (FSpot.Global.BaseDirectory, "Accounts.xml");
+			this.xml_path = System.IO.Path.Combine (FSpot.Core.Global.BaseDirectory, "Accounts.xml");
 
 			accounts = new ArrayList ();
 			ReadAccounts ();
diff --git a/extensions/Exporters/GalleryExport/GalleryRemote.cs b/extensions/Exporters/GalleryExport/GalleryRemote.cs
index 146000e..00ec068 100644
--- a/extensions/Exporters/GalleryExport/GalleryRemote.cs
+++ b/extensions/Exporters/GalleryExport/GalleryRemote.cs
@@ -7,6 +7,7 @@ using System.Collections.Specialized;
 using System.Web;
 using Mono.Unix;
 using FSpot;
+using FSpot.Core;
 using FSpot.UI.Dialog;
 using Hyena;
 using Hyena.Widgets;
@@ -85,12 +86,12 @@ namespace GalleryRemote {
 			gallery.MoveAlbum (this, name);
 		}
 
-		public void Add (FSpot.IBrowsableItem item)
+		public void Add (IBrowsableItem item)
 		{
 			Add (item, item.DefaultVersion.Uri.LocalPath);
 		}
 
-		public int Add (FSpot.IBrowsableItem item, string path)
+		public int Add (IBrowsableItem item, string path)
 		{
 			if (item == null)
 				Log.Warning ("NO PHOTO");
diff --git a/extensions/Exporters/PicasaWebExport/PicasaWebExport.cs b/extensions/Exporters/PicasaWebExport/PicasaWebExport.cs
index a27a6b7..9c7a029 100644
--- a/extensions/Exporters/PicasaWebExport/PicasaWebExport.cs
+++ b/extensions/Exporters/PicasaWebExport/PicasaWebExport.cs
@@ -19,6 +19,7 @@ using Hyena;
 using Hyena.Widgets;
 
 using FSpot;
+using FSpot.Core;
 using FSpot.Filters;
 using FSpot.Widgets;
 using FSpot.Utils;
diff --git a/extensions/Exporters/SmugMugExport/SmugMugExport.cs b/extensions/Exporters/SmugMugExport/SmugMugExport.cs
index 87c256b..b0277d8 100644
--- a/extensions/Exporters/SmugMugExport/SmugMugExport.cs
+++ b/extensions/Exporters/SmugMugExport/SmugMugExport.cs
@@ -21,6 +21,7 @@ using Mono.Unix;
 using Gtk;
 
 using FSpot;
+using FSpot.Core;
 using FSpot.Filters;
 using FSpot.Widgets;
 using Hyena;
diff --git a/extensions/Exporters/TabbloExport/TabbloExport.cs b/extensions/Exporters/TabbloExport/TabbloExport.cs
index 6cfdf55..da96cd8 100644
--- a/extensions/Exporters/TabbloExport/TabbloExport.cs
+++ b/extensions/Exporters/TabbloExport/TabbloExport.cs
@@ -37,6 +37,7 @@ using System.Net;
 using System.Threading;
 
 using Hyena;
+using FSpot.Core;
 using FSpot.UI.Dialog;
 
 namespace FSpotTabbloExport {
@@ -64,7 +65,7 @@ namespace FSpotTabbloExport {
 		}
 
 
-		public void Run (FSpot.IBrowsableCollection photos)
+		public void Run (IBrowsableCollection photos)
 		{
 			if (null == photos || null == photos.Items) {
 				throw new ArgumentNullException ("photos");
@@ -207,7 +208,7 @@ namespace FSpotTabbloExport {
 		{
 			Debug.Assert (model != sender);
 
-			FSpot.Tag [] tags = SelectTags ();
+			FSpot.Core.Tag [] tags = SelectTags ();
 			if (null != tags) {
 				model.AttachedTags = tags;
 			}
@@ -218,7 +219,7 @@ namespace FSpotTabbloExport {
 		{
 			Debug.Assert (model != sender);
 
-			FSpot.Tag [] tags = SelectTags ();
+			FSpot.Core.Tag [] tags = SelectTags ();
 			if (null != tags) {
 				model.RemovedTags = tags;
 			}
@@ -250,12 +251,12 @@ namespace FSpotTabbloExport {
 		}
 
 
-		private FSpot.Tag [] SelectTags ()
+		private FSpot.Core.Tag [] SelectTags ()
 		{
 			TagStore tag_store = FSpot.App.Instance.Database.Tags;
 			TagSelectionDialog tagDialog =
 					new TagSelectionDialog (tag_store);
-			FSpot.Tag [] tags = tagDialog.Run ();
+			FSpot.Core.Tag [] tags = tagDialog.Run ();
 
 			tagDialog.Hide ();
 
@@ -363,7 +364,7 @@ namespace FSpotTabbloExport {
 		}
 
 		
-		private void OnPhotoUploaded (FSpot.IBrowsableItem item)
+		private void OnPhotoUploaded (IBrowsableItem item)
 		{
 			Debug.Assert (null != item);
 
@@ -392,7 +393,7 @@ namespace FSpotTabbloExport {
 		private Picture [] GetPicturesForUpload ()
 		{
 			Picture [] pictures = new Picture [model.Photos.Length];
-			FSpot.IBrowsableItem [] items = model.Photos;
+			IBrowsableItem [] items = model.Photos;
 
 			for (int i = 0; i < pictures.Length; ++i) {
 				string mime_type = GLib.FileFactory.NewForUri (items [i].DefaultVersion.Uri).
diff --git a/extensions/Exporters/TabbloExport/TabbloExportModel.cs b/extensions/Exporters/TabbloExport/TabbloExportModel.cs
index bfc6728..54ad8ce 100644
--- a/extensions/Exporters/TabbloExport/TabbloExportModel.cs
+++ b/extensions/Exporters/TabbloExport/TabbloExportModel.cs
@@ -36,22 +36,23 @@ using System.Collections;
 using System.Collections.Generic;
 using System.Diagnostics;
 
+using FSpot.Core;
 
 namespace FSpotTabbloExport {
 
 	class TabbloExportModel : Mono.Tabblo.IPreferences {
 
-		private FSpot.IBrowsableCollection photo_collection;
+		private IBrowsableCollection photo_collection;
 
 		private string username;
 		private string password;
 
 		private bool attach_tags = false;
-		private FSpot.Tag [] attached_tags;
+		private FSpot.Core.Tag [] attached_tags;
 		private bool remove_tags = false;
-		private FSpot.Tag [] removed_tags;
+		private FSpot.Core.Tag [] removed_tags;
 
-		private static readonly FSpot.Tag [] no_tags = new FSpot.Tag [0];
+		private static readonly FSpot.Core.Tag [] no_tags = new FSpot.Core.Tag [0];
 
 
 		// `FSpot.Preferences' constants.
@@ -76,7 +77,7 @@ namespace FSpotTabbloExport {
 
 		// The photos.
 
-		internal FSpot.IBrowsableCollection PhotoCollection {
+		internal IBrowsableCollection PhotoCollection {
 			get {
 				return photo_collection;
 			}
@@ -85,7 +86,7 @@ namespace FSpotTabbloExport {
 			}
 		}
 
-		internal FSpot.IBrowsableItem [] Photos {
+		internal IBrowsableItem [] Photos {
 			get {
 				return photo_collection.Items;
 			}
@@ -147,13 +148,13 @@ namespace FSpotTabbloExport {
 		}
 
 		internal event EventHandler AttachedTagsChanged;
-		internal FSpot.Tag [] AttachedTags {
+		internal FSpot.Core.Tag [] AttachedTags {
 			get {
 				return null != attached_tags
 						? attached_tags	: no_tags;
 			}
 			set {
-				FSpot.Tag [] old_value = attached_tags;
+				FSpot.Core.Tag [] old_value = attached_tags;
 				attached_tags = value;
 				OnMaybePropertyChanged (old_value, attached_tags,
 						AttachedTagsChanged);
@@ -174,13 +175,13 @@ namespace FSpotTabbloExport {
 		}
 
 		internal event EventHandler RemovedTagsChanged;
-		internal FSpot.Tag [] RemovedTags {
+		internal FSpot.Core.Tag [] RemovedTags {
 			get {
 				return null != removed_tags
 						? removed_tags : no_tags;
 			}
 			set {
-				FSpot.Tag [] old_value = removed_tags;
+				FSpot.Core.Tag [] old_value = removed_tags;
 				removed_tags = value;
 				OnMaybePropertyChanged (old_value, removed_tags,
 						RemovedTagsChanged);
@@ -353,16 +354,16 @@ namespace FSpotTabbloExport {
 		}
 		
 		
-		private static FSpot.Tag [] ToTags (int [] ids)
+		private static FSpot.Core.Tag [] ToTags (int [] ids)
 		{
 			if (null == ids) {
 				return null;
 			}
 
-			List <FSpot.Tag> tags =
-					new List <FSpot.Tag> (ids.Length);
+			List <FSpot.Core.Tag> tags =
+					new List <FSpot.Core.Tag> (ids.Length);
 			foreach (int id in ids) {
-				FSpot.Tag tag = FSpot.App.Instance.Database.Tags
+				FSpot.Core.Tag tag = FSpot.App.Instance.Database.Tags
 						.GetTagById (id);
 				if (null != tag) {
 					tags.Add (tag);
@@ -374,7 +375,7 @@ namespace FSpotTabbloExport {
 			return tags.ToArray ();
 		}
 
-		private static int [] ToIds (FSpot.Tag [] tags)
+		private static int [] ToIds (FSpot.Core.Tag [] tags)
 		{
 			if (null == tags) {
 				return null;
diff --git a/extensions/Exporters/TabbloExport/TabbloExportView.cs b/extensions/Exporters/TabbloExport/TabbloExportView.cs
index 77659dd..c105351 100644
--- a/extensions/Exporters/TabbloExport/TabbloExportView.cs
+++ b/extensions/Exporters/TabbloExport/TabbloExportView.cs
@@ -31,6 +31,7 @@ using System;
 using System.Diagnostics;
 using System.Reflection;
 
+using FSpot.Core;
 
 namespace FSpotTabbloExport {
 
@@ -74,7 +75,7 @@ namespace FSpotTabbloExport {
 		private Gtk.Button export_button;
 
 
-		internal TabbloExportView (FSpot.IBrowsableCollection photos)
+		internal TabbloExportView (IBrowsableCollection photos)
 			: base (Assembly.GetExecutingAssembly (),
 					"TabbloExport.ui", DialogName)
 		{
diff --git a/extensions/Exporters/ZipExport/ZipExport.cs b/extensions/Exporters/ZipExport/ZipExport.cs
index 62cd97e..6b3071e 100644
--- a/extensions/Exporters/ZipExport/ZipExport.cs
+++ b/extensions/Exporters/ZipExport/ZipExport.cs
@@ -14,6 +14,7 @@
 
 using FSpot;
 using FSpot.UI.Dialog;
+using FSpot.Core;
 using FSpot.Extensions;
 using FSpot.Filters;
 using Hyena;
@@ -65,7 +66,7 @@ namespace ZipExport {
 			uri_chooser = new Gtk.FileChooserButton (Catalog.GetString ("Select export folder"),
 								 Gtk.FileChooserAction.SelectFolder);
 			uri_chooser.LocalOnly = true;
-			uri_chooser.SetFilename (System.IO.Path.Combine (FSpot.Global.HomeDirectory, "Desktop"));
+			uri_chooser.SetFilename (System.IO.Path.Combine (FSpot.Core.Global.HomeDirectory, "Desktop"));
 			dirchooser_hbox.PackStart (uri_chooser, false, false, 2);
 			filename.Text = "f-spot_export.zip";
 
diff --git a/extensions/Tools/ChangePhotoPath/ChangePhotoPathController.cs b/extensions/Tools/ChangePhotoPath/ChangePhotoPathController.cs
index 8d0378e..f340de2 100644
--- a/extensions/Tools/ChangePhotoPath/ChangePhotoPathController.cs
+++ b/extensions/Tools/ChangePhotoPath/ChangePhotoPathController.cs
@@ -9,6 +9,7 @@
 
 
 using FSpot;
+using FSpot.Core;
 using FSpot.Query;
 using System;
 using System.IO;
@@ -64,7 +65,7 @@ namespace ChangePhotoPath
 			gui_controller = gui;
 			total_photos = photo_store.TotalPhotos;
 			orig_base_path = EnsureEndsWithOneDirectorySeparator (FindOrigBasePath());			// NOT URI
-			string new_base_path = EnsureEndsWithOneDirectorySeparator (FSpot.Global.PhotoUri.LocalPath);	// NOT URI
+			string new_base_path = EnsureEndsWithOneDirectorySeparator (FSpot.Core.Global.PhotoUri.LocalPath);	// NOT URI
 			gui_controller.DisplayDefaultPaths (orig_base_path, new_base_path);
 			user_cancelled = false;
 		}
diff --git a/extensions/Tools/DevelopInUFraw/DevelopInUFRaw.cs b/extensions/Tools/DevelopInUFraw/DevelopInUFRaw.cs
index e477ad0..a3ab724 100644
--- a/extensions/Tools/DevelopInUFraw/DevelopInUFRaw.cs
+++ b/extensions/Tools/DevelopInUFraw/DevelopInUFRaw.cs
@@ -14,6 +14,7 @@ using Mono.Unix;
 
 using Hyena;
 using FSpot;
+using FSpot.Core;
 using FSpot.Utils;
 using FSpot.Extensions;
 using FSpot.Imaging;
@@ -119,9 +120,9 @@ namespace DevelopInUFRawExtension
 					break;
 				case "ufraw-batch":
 					args += ufraw_batch_args;
-					if (GLib.FileFactory.NewForUri (Path.Combine (FSpot.Global.BaseDirectory, "batch.ufraw")).Exists) {
+					if (GLib.FileFactory.NewForUri (Path.Combine (Global.BaseDirectory, "batch.ufraw")).Exists) {
 						// We found an ID file, use that instead of the raw file
-						idfile = "--conf=" + GLib.Shell.Quote (Path.Combine (FSpot.Global.BaseDirectory, "batch.ufraw"));
+						idfile = "--conf=" + GLib.Shell.Quote (Path.Combine (Global.BaseDirectory, "batch.ufraw"));
 					}
 					break;
 			}
@@ -142,8 +143,8 @@ namespace DevelopInUFRawExtension
 
 			if (GLib.FileFactory.NewForUri (Path.ChangeExtension (developed.ToString (), ".ufraw")).Exists) {
 				// We save our own copy of the last ufraw settings, as ufraw can overwrite it's own last used settings outside f-spot
-				File.Delete (Path.Combine (FSpot.Global.BaseDirectory, "batch.ufraw"));
-				File.Copy (Path.ChangeExtension (developed.LocalPath, ".ufraw"), Path.Combine (FSpot.Global.BaseDirectory, "batch.ufraw"));
+				File.Delete (Path.Combine (Global.BaseDirectory, "batch.ufraw"));
+				File.Copy (Path.ChangeExtension (developed.LocalPath, ".ufraw"), Path.Combine (Global.BaseDirectory, "batch.ufraw"));
 
 				// Rename the ufraw file to match the original RAW filename, instead of the (Developed In UFRaw) filename
 				File.Delete (Path.ChangeExtension (raw.Uri.LocalPath, ".ufraw"));
diff --git a/extensions/Tools/LiveWebGallery/GalleryRequestHandler.cs b/extensions/Tools/LiveWebGallery/GalleryRequestHandler.cs
index a288403..ff37b7e 100644
--- a/extensions/Tools/LiveWebGallery/GalleryRequestHandler.cs
+++ b/extensions/Tools/LiveWebGallery/GalleryRequestHandler.cs
@@ -13,6 +13,7 @@ using System.Text;
 using System.Reflection;
 
 using FSpot;
+using FSpot.Core;
 using Mono.Unix;
 
 namespace LiveWebGalleryExtension	
diff --git a/extensions/Tools/LiveWebGallery/LiveWebGallery.cs b/extensions/Tools/LiveWebGallery/LiveWebGallery.cs
index e0208a3..063c13a 100644
--- a/extensions/Tools/LiveWebGallery/LiveWebGallery.cs
+++ b/extensions/Tools/LiveWebGallery/LiveWebGallery.cs
@@ -15,6 +15,7 @@ using System.Collections.Generic;
 using Gtk;
 
 using FSpot;
+using FSpot.Core;
 using FSpot.Extensions;
 using FSpot.Utils;
 using FSpot.Query;
diff --git a/extensions/Tools/LiveWebGallery/LiveWebGalleryDialog.cs b/extensions/Tools/LiveWebGallery/LiveWebGalleryDialog.cs
index 0982417..114aa06 100644
--- a/extensions/Tools/LiveWebGallery/LiveWebGalleryDialog.cs
+++ b/extensions/Tools/LiveWebGallery/LiveWebGalleryDialog.cs
@@ -11,6 +11,7 @@ using System;
 using System.Net;
 using System.Reflection;
 using FSpot;
+using FSpot.Core;
 using FSpot.Extensions;
 using FSpot.Query;
 using Gtk;
diff --git a/extensions/Tools/MergeDb/MergeDb.cs b/extensions/Tools/MergeDb/MergeDb.cs
index 8786c1e..ccd997a 100644
--- a/extensions/Tools/MergeDb/MergeDb.cs
+++ b/extensions/Tools/MergeDb/MergeDb.cs
@@ -14,6 +14,7 @@ using System.Collections.Generic;
 using Gtk;
 
 using FSpot;
+using FSpot.Core;
 using FSpot.Extensions;
 using FSpot.Query;
 using FSpot.UI.Dialog;
@@ -110,7 +111,7 @@ namespace MergeDbExtension
 
 		public static void Merge (string path, Db to_db)
 		{
-			Log.WarningFormat ("Will merge db {0} into main f-spot db {1}", path, FSpot.Global.BaseDirectory + "/photos.db" );
+			Log.WarningFormat ("Will merge db {0} into main f-spot db {1}", path, FSpot.Core.Global.BaseDirectory + "/photos.db" );
 			Db from_db = new Db ();
 			from_db.Init (path, true);
 			//MergeDb mdb = new MergeDb (from_db, to_db);
@@ -289,7 +290,7 @@ namespace MergeDbExtension
             // Find a new unique location inside the photo folder
             string name = uri.GetFilename ();
 
-            var dest_uri = FSpot.Global.PhotoUri.Append (time.Year.ToString ())
+            var dest_uri = FSpot.Core.Global.PhotoUri.Append (time.Year.ToString ())
                                           .Append (String.Format ("{0:D2}", time.Month))
                                           .Append (String.Format ("{0:D2}", time.Day));
             EnsureDirectory (dest_uri);
diff --git a/extensions/Tools/MergeDb/MergeDbDialog.cs b/extensions/Tools/MergeDb/MergeDbDialog.cs
index e2bcf0b..913185a 100644
--- a/extensions/Tools/MergeDb/MergeDbDialog.cs
+++ b/extensions/Tools/MergeDb/MergeDbDialog.cs
@@ -9,6 +9,7 @@
 
 using System;
 using FSpot;
+using FSpot.Core;
 using FSpot.Query;
 
 namespace MergeDbExtension
diff --git a/extensions/Tools/RawPlusJpeg/RawPlusJpeg.cs b/extensions/Tools/RawPlusJpeg/RawPlusJpeg.cs
index ea208ee..ce776c8 100644
--- a/extensions/Tools/RawPlusJpeg/RawPlusJpeg.cs
+++ b/extensions/Tools/RawPlusJpeg/RawPlusJpeg.cs
@@ -13,6 +13,7 @@ using System.Collections.Generic;
 using Gtk;
 
 using FSpot;
+using FSpot.Core;
 using FSpot.UI.Dialog;
 using FSpot.Extensions;
 using FSpot.Imaging;
diff --git a/extensions/Tools/RetroactiveRoll/RetroactiveRoll.cs b/extensions/Tools/RetroactiveRoll/RetroactiveRoll.cs
index 3dcf3fb..29cee82 100644
--- a/extensions/Tools/RetroactiveRoll/RetroactiveRoll.cs
+++ b/extensions/Tools/RetroactiveRoll/RetroactiveRoll.cs
@@ -9,6 +9,7 @@
 
 
 using FSpot;
+using FSpot.Core;
 using FSpot.Extensions;
 using Mono.Unix;
 using System;
diff --git a/extensions/Tools/ScreensaverConfig/ScreensaverConfig.cs b/extensions/Tools/ScreensaverConfig/ScreensaverConfig.cs
index 3a3644d..2b3552e 100644
--- a/extensions/Tools/ScreensaverConfig/ScreensaverConfig.cs
+++ b/extensions/Tools/ScreensaverConfig/ScreensaverConfig.cs
@@ -15,6 +15,7 @@ using System.Reflection;
 using Gtk;
 
 using FSpot;
+using FSpot.Core;
 using FSpot.UI.Dialog;
 using FSpot.Extensions;
 using FSpot.Widgets;
diff --git a/po/POTFILES.in b/po/POTFILES.in
index d42b4b3..91b7db5 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -51,8 +51,7 @@ extensions/Tools/MergeDb/PickFolderDialog.cs
 extensions/Tools/ScreensaverConfig/ScreensaverConfig.addin.xml
 [type: gettext/glade]extensions/Tools/ScreensaverConfig/ScreensaverConfigDialog.ui
 f-spot.schemas.in
-src/Core/App.cs
-src/Core/Photo.cs
+src/App.cs
 src/Editors/AutoStretchEditor.cs
 src/Editors/ColorEditor.cs
 src/Editors/CropEditor.cs
@@ -74,6 +73,7 @@ src/ItemAction.cs
 src/Jobs/SyncMetadataJob.cs
 src/Loupe.cs
 src/MainWindow.cs
+src/Photo.cs
 src/PhotoPopup.cs
 src/PhotoStore.cs
 src/PhotoTagMenu.cs
diff --git a/src/Core/App.cs b/src/App.cs
similarity index 96%
rename from src/Core/App.cs
rename to src/App.cs
index 04b9213..23f8ecd 100644
--- a/src/Core/App.cs
+++ b/src/App.cs
@@ -21,6 +21,8 @@ using Mono.Unix;
 
 using Hyena;
 
+using FSpot.Core;
+
 namespace FSpot
 {
 	public class App : Unique.App
@@ -62,16 +64,16 @@ namespace FSpot
 			get {
 				lock (sync_handle) {
 					if (db == null) {
-						if (!File.Exists (FSpot.Global.BaseDirectory))
-							Directory.CreateDirectory (FSpot.Global.BaseDirectory);
+						if (!File.Exists (Global.BaseDirectory))
+							Directory.CreateDirectory (Global.BaseDirectory);
 
 						db = new Db ();
 
 						try {
-							db.Init (Path.Combine (FSpot.Global.BaseDirectory, "photos.db"), true);
+							db.Init (Path.Combine (Global.BaseDirectory, "photos.db"), true);
 						} catch (Exception e) {
 							new FSpot.UI.Dialog.RepairDbDialog (e, db.Repair (), null);
-							db.Init (Path.Combine (FSpot.Global.BaseDirectory, "photos.db"), true);
+							db.Init (Path.Combine (Global.BaseDirectory, "photos.db"), true);
 						}
 					}
 				}
@@ -150,7 +152,7 @@ namespace FSpot
 
 #region private ctor and stuffs
 		enum Command {
-			Invalid = 0, 
+			Invalid = 0,
 			Import,
 			View,
 			Organize,
@@ -293,8 +295,8 @@ namespace FSpot
 										     "F-Spot preference dialog."), tag.Name);
 				} else {
 					msg = Catalog.GetString ("Search returned no results");
-					long_msg = Catalog.GetString ("The tag F-Spot is looking for does not exist. Try\n" + 
-								      "selecting a different tag in the F-Spot preference\n" + 
+					long_msg = Catalog.GetString ("The tag F-Spot is looking for does not exist. Try\n" +
+								      "selecting a different tag in the F-Spot preference\n" +
 								      "dialog.");
 				}
 
@@ -333,7 +335,7 @@ namespace FSpot
 			} catch (System.Exception e) {
 				Log.Exception (e);
 				Log.Debug ("no real valid path to view from");
-			} 
+			}
 		}
 
 #endregion
diff --git a/src/Core/ColorManagement.cs b/src/ColorManagement.cs
similarity index 99%
rename from src/Core/ColorManagement.cs
rename to src/ColorManagement.cs
index 793e03b..111fbb5 100644
--- a/src/Core/ColorManagement.cs
+++ b/src/ColorManagement.cs
@@ -14,6 +14,7 @@
 using System;
 using System.IO;
 using System.Collections.Generic;
+using FSpot.Core;
 
 namespace FSpot {
 	public static class ColorManagement {
@@ -74,7 +75,7 @@ namespace FSpot {
 						AddProfiles (dir, profs);
 			}
 		}
-		
+
 		public static void ApplyProfile (Gdk.Pixbuf pixbuf, Cms.Profile destination_profile)
 		{
 			ApplyProfile (pixbuf, Cms.Profile.CreateStandardRgb (), destination_profile);
diff --git a/src/ControlOverlay.cs b/src/ControlOverlay.cs
index f744f03..0647236 100644
--- a/src/ControlOverlay.cs
+++ b/src/ControlOverlay.cs
@@ -14,6 +14,7 @@ using System;
 using Gtk;
 using FSpot.Widgets;
 using FSpot.Utils;
+using FSpot.Core;
 
 namespace FSpot {
 	public class ControlOverlay : Window {
diff --git a/src/Core/FSpot.Core.dll.config.in b/src/Core/FSpot.Core/FSpot.Core.dll.config.in
similarity index 100%
rename from src/Core/FSpot.Core.dll.config.in
rename to src/Core/FSpot.Core/FSpot.Core.dll.config.in
diff --git a/src/Core/BrowsableCollectionProxy.cs b/src/Core/FSpot.Core/FSpot.Core/BrowsableCollectionProxy.cs
similarity index 99%
rename from src/Core/BrowsableCollectionProxy.cs
rename to src/Core/FSpot.Core/FSpot.Core/BrowsableCollectionProxy.cs
index 7f036eb..7a818cc 100644
--- a/src/Core/BrowsableCollectionProxy.cs
+++ b/src/Core/FSpot.Core/FSpot.Core/BrowsableCollectionProxy.cs
@@ -9,7 +9,7 @@
 
 using System.Collections.Generic;
 
-namespace FSpot {
+namespace FSpot.Core {
     public class BrowsableCollectionProxy : IBrowsableCollection {
 
         private IBrowsableCollection collection;
diff --git a/src/Core/BrowsableEventArgs.cs b/src/Core/FSpot.Core/FSpot.Core/BrowsableEventArgs.cs
similarity index 96%
rename from src/Core/BrowsableEventArgs.cs
rename to src/Core/FSpot.Core/FSpot.Core/BrowsableEventArgs.cs
index e546631..22144b1 100644
--- a/src/Core/BrowsableEventArgs.cs
+++ b/src/Core/FSpot.Core/FSpot.Core/BrowsableEventArgs.cs
@@ -1,6 +1,6 @@
 /*
  * FSpot.BrowsableEventArgs.cs
- * 
+ *
  * Author(s):
  *	Larry Ewing <lewing novell com>
  *
@@ -9,7 +9,7 @@
 
 using System;
 
-namespace FSpot
+namespace FSpot.Core
 {
 	public class BrowsableEventArgs : System.EventArgs {
 		private readonly int [] items;
diff --git a/src/Core/BrowsablePointer.cs b/src/Core/FSpot.Core/FSpot.Core/BrowsablePointer.cs
similarity index 95%
rename from src/Core/BrowsablePointer.cs
rename to src/Core/FSpot.Core/FSpot.Core/BrowsablePointer.cs
index b355d25..768d26b 100644
--- a/src/Core/BrowsablePointer.cs
+++ b/src/Core/FSpot.Core/FSpot.Core/BrowsablePointer.cs
@@ -1,6 +1,6 @@
 /*
- * FSpot.BrowsablePointer.cs
- * 
+ * BrowsablePointer.cs
+ *
  * Author(s):
  *	Larry Ewing <lewing novell com>
  *
@@ -8,7 +8,7 @@
  */
 using System;
 
-namespace FSpot
+namespace FSpot.Core
 {
 
 	public class BrowsablePointer {
@@ -38,7 +38,7 @@ namespace FSpot
 			get {
 				if (!this.IsValid)
 					return null;
-				else 
+				else
 					return collection [index];
 			}
 		}
@@ -61,7 +61,7 @@ namespace FSpot
 		{
 			Index = collection.Count - 1;
 		}
-		
+
 		public void MoveNext ()
 		{
 			MoveNext (false);
@@ -74,10 +74,10 @@ namespace FSpot
 			val++;
 			if (!Valid (val))
 				val = wrap ? 0 : Index;
-			
+
 			Index = val;
 		}
-		
+
 		public void MovePrevious ()
 		{
 			MovePrevious (false);
@@ -99,7 +99,7 @@ namespace FSpot
 			set {
 				if (index != value) {
 					SetIndex (value);
-				}				
+				}
 			}
 		}
 
@@ -111,10 +111,10 @@ namespace FSpot
 		private void SetIndex (int value, IBrowsableItemChanges changes)
 		{
 			BrowsablePointerChangedEventArgs args = new BrowsablePointerChangedEventArgs (Current, index, changes);
-			
+
 			index = value;
 			item = Current;
-			
+
 			if (Changed != null)
 				Changed (this, args);
 		}
@@ -123,24 +123,24 @@ namespace FSpot
 							     BrowsableEventArgs event_args)
 		{
 			foreach (int item in event_args.Items)
-				if (item == Index) 
+				if (item == Index)
 					SetIndex (Index, event_args.Changes);
 		}
-		
+
 		protected void HandleCollectionChanged (IBrowsableCollection collection)
 		{
 			if (collection == null)
 				throw new ArgumentNullException ("collection");
 			int old_location = Index;
 			int next_location = collection.IndexOf (item);
-			
+
 			if (old_location == next_location) {
 				if (! Valid (next_location))
 					SetIndex (0, null);
 
 				return;
 			}
-			
+
 			if (Valid (next_location))
 				SetIndex (next_location);
 			else if (Valid (old_location))
diff --git a/src/Core/BrowsablePointerChangedEventArgs.cs b/src/Core/FSpot.Core/FSpot.Core/BrowsablePointerChangedEventArgs.cs
similarity index 92%
rename from src/Core/BrowsablePointerChangedEventArgs.cs
rename to src/Core/FSpot.Core/FSpot.Core/BrowsablePointerChangedEventArgs.cs
index e0b26d3..053df03 100644
--- a/src/Core/BrowsablePointerChangedEventArgs.cs
+++ b/src/Core/FSpot.Core/FSpot.Core/BrowsablePointerChangedEventArgs.cs
@@ -1,5 +1,5 @@
 /*
- * FSpot.BrowsablePointerChangedEventArgs.cs
+ * BrowsablePointerChangedEventArgs.cs
  *
  * Author(s):
  *	Larry Ewing <lewing novell com>
@@ -7,7 +7,7 @@
  * This is free software. See COPYING for details.
  */
 
-namespace FSpot
+namespace FSpot.Core
 {
 	public class BrowsablePointerChangedEventArgs : System.EventArgs
 	{
diff --git a/src/Core/Category.cs b/src/Core/FSpot.Core/FSpot.Core/Category.cs
similarity index 97%
rename from src/Core/Category.cs
rename to src/Core/FSpot.Core/FSpot.Core/Category.cs
index a7ed123..f158fff 100644
--- a/src/Core/Category.cs
+++ b/src/Core/FSpot.Core/FSpot.Core/Category.cs
@@ -1,6 +1,6 @@
 /*
  * FSpot.Category.cs
- * 
+ *
  * Author(s):
  *	Larry Ewing  <lewing novell com>
  *	Stephane Delcroix  <stephane delcroix org>
@@ -11,7 +11,7 @@
 using System;
 using System.Collections.Generic;
 
-namespace FSpot
+namespace FSpot.Core
 {
 	public class Category : Tag {
 		List<Tag> children;
@@ -27,7 +27,7 @@ namespace FSpot
 				children_need_sort = true;
 			}
 		}
-	
+
 		// Appends all of this categories descendents to the list
 		public void AddDescendentsTo (IList<Tag> list)
 		{
@@ -37,27 +37,27 @@ namespace FSpot
 			foreach (Tag tag in children) {
 				if (! list.Contains (tag))
 					list.Add (tag);
-	
+
 				Category cat = tag as Category;
 				if (cat == null)
 					continue;
-		
+
 				cat.AddDescendentsTo (list);
 			}
 		}
-	
+
 		public void AddChild (Tag child)
 		{
 			children.Add (child);
 			children_need_sort = true;
 		}
-	
+
 		public void RemoveChild (Tag child)
 		{
 			children.Remove (child);
 			children_need_sort = true;
 		}
-	
+
 		public Category (Category category, uint id, string name)
 			: base (category, id, name)
 		{
diff --git a/src/Core/DbItem.cs b/src/Core/FSpot.Core/FSpot.Core/DbItem.cs
similarity index 96%
rename from src/Core/DbItem.cs
rename to src/Core/FSpot.Core/FSpot.Core/DbItem.cs
index c2efc7b..712534a 100644
--- a/src/Core/DbItem.cs
+++ b/src/Core/FSpot.Core/FSpot.Core/DbItem.cs
@@ -10,14 +10,14 @@
 
 using System;
 
-namespace FSpot
+namespace FSpot.Core
 {
 	public class DbItem {
 		uint id;
 		public uint Id {
 			get { return id; }
 		}
-	
+
 		protected DbItem (uint id) {
 			this.id = id;
 		}
diff --git a/src/Core/FSpot.Core/FSpot.Core/Defines.cs b/src/Core/FSpot.Core/FSpot.Core/Defines.cs
new file mode 100644
index 0000000..fb06609
--- /dev/null
+++ b/src/Core/FSpot.Core/FSpot.Core/Defines.cs
@@ -0,0 +1,20 @@
+//
+// Defines.cs
+// Get the locale directory
+//
+// Authors:
+//	Martin Willemoes Hansen
+//
+// (C) 2004 Martin Willemoes Hansen
+//
+
+namespace FSpot.Core {
+	public struct Defines {
+		public const string LOCALE_DIR = "/home/ruben/Build/share/locale";
+		public const string VERSION = "0.7.1";
+		public const string PACKAGE = "f-spot";
+		public const string PREFIX = "/home/ruben/Build";
+		public const string APP_DATA_DIR = "/home/ruben/Build/share/f-spot";
+		public const string BINDIR = PREFIX + "/bin";
+	}
+}
diff --git a/src/Core/Defines.cs.in b/src/Core/FSpot.Core/FSpot.Core/Defines.cs.in
similarity index 91%
rename from src/Core/Defines.cs.in
rename to src/Core/FSpot.Core/FSpot.Core/Defines.cs.in
index 3fd7d47..60af4dd 100644
--- a/src/Core/Defines.cs.in
+++ b/src/Core/FSpot.Core/FSpot.Core/Defines.cs.in
@@ -2,13 +2,13 @@
 // Defines.cs
 // Get the locale directory
 //
-// Authors: 
+// Authors:
 //	Martin Willemoes Hansen
 //
 // (C) 2004 Martin Willemoes Hansen
-// 
+//
 
-namespace FSpot {
+namespace FSpot.Core {
 	public struct Defines {
 		public const string LOCALE_DIR = "@prefix@/share/locale";
 		public const string VERSION = "@VERSION@";
@@ -16,5 +16,5 @@ namespace FSpot {
 		public const string PREFIX = "@prefix@";
 		public const string APP_DATA_DIR = "@prefix@/share/@PACKAGE@";
 		public const string BINDIR = PREFIX + "/bin";
-	}			
+	}
 }
diff --git a/src/Core/Delay.cs b/src/Core/FSpot.Core/FSpot.Core/Delay.cs
similarity index 88%
rename from src/Core/Delay.cs
rename to src/Core/FSpot.Core/FSpot.Core/Delay.cs
index af0aff6..b21fc12 100644
--- a/src/Core/Delay.cs
+++ b/src/Core/FSpot.Core/FSpot.Core/Delay.cs
@@ -2,7 +2,7 @@
  * Delay.cs
  *
  * Copyright 2007 Novell Inc.
- * 
+ *
  * Author
  *   Larry Ewing <lewing novell com>
  *
@@ -12,7 +12,7 @@
 
 using System;
 
-namespace FSpot
+namespace FSpot.Core
 {
 	public class Delay
 	{
@@ -24,7 +24,7 @@ namespace FSpot
 			this.interval = interval;
 		}
 
-		public Delay (GLib.IdleHandler op) 
+		public Delay (GLib.IdleHandler op)
 		{
 			this.op = op;
 		}
@@ -44,15 +44,15 @@ namespace FSpot
 				return runagain;
 			}
 		}
-		
+
 		public void Start () {
 			lock (syncHandle) {
 				if (this.IsPending)
 					return;
 
-				if (interval != 0) 
+				if (interval != 0)
 					source = GLib.Timeout.Add (interval, new GLib.TimeoutHandler (HandleOperation));
-				else 
+				else
 					source = GLib.Idle.Add (new GLib.IdleHandler (HandleOperation));
 			}
 		}
@@ -67,15 +67,15 @@ namespace FSpot
 		{
 			if (obj == null)
 				throw new ArgumentNullException ("obj");
-			obj.Destroyed += HandleDestroy; 
-		}	     
-		
+			obj.Destroyed += HandleDestroy;
+		}
+
 		private void HandleDestroy (object sender, System.EventArgs args)
 		{
 			this.Stop ();
 		}
-		
-		public void Stop () 
+
+		public void Stop ()
 		{
 			lock (syncHandle) {
 				if (this.IsPending) {
diff --git a/src/Core/FileBrowsableItem.cs b/src/Core/FSpot.Core/FSpot.Core/FileBrowsableItem.cs
similarity index 99%
rename from src/Core/FileBrowsableItem.cs
rename to src/Core/FSpot.Core/FSpot.Core/FileBrowsableItem.cs
index c016745..9a13619 100644
--- a/src/Core/FileBrowsableItem.cs
+++ b/src/Core/FSpot.Core/FSpot.Core/FileBrowsableItem.cs
@@ -19,7 +19,7 @@ using FSpot.Utils;
 
 using Mono.Unix.Native;
 
-namespace FSpot {
+namespace FSpot.Core {
     public class FileBrowsableItem : IBrowsableItem
     {
         bool metadata_parsed = false;
diff --git a/src/Core/Global.cs b/src/Core/FSpot.Core/FSpot.Core/Global.cs
similarity index 98%
rename from src/Core/Global.cs
rename to src/Core/FSpot.Core/FSpot.Core/Global.cs
index a92e014..a7b1043 100644
--- a/src/Core/Global.cs
+++ b/src/Core/FSpot.Core/FSpot.Core/Global.cs
@@ -7,12 +7,12 @@
 using System;
 using Hyena;
 
-namespace FSpot {
+namespace FSpot.Core {
 	public static class Global {
 		public static string HomeDirectory {
 			get { return System.IO.Path.Combine (System.Environment.GetEnvironmentVariable ("HOME"), System.String.Empty); }
 		}
-		
+
 		//$XDG_CONFIG_HOME/f-spot or $HOME/.config/f-spot
 		private static string xdg_config_home = Environment.GetFolderPath (Environment.SpecialFolder.ApplicationData);
 		private static string base_dir = System.IO.Path.Combine (xdg_config_home, "f-spot");
@@ -28,10 +28,10 @@ namespace FSpot {
 		}
 
 		public static string HelpDirectory {
-			get { 
+			get {
 				// path is relative
 				return "f-spot";
-			}	
+			}
 		}
 
 		private static Cms.Profile display_profile;
diff --git a/src/Core/IBrowsableCollection.cs b/src/Core/FSpot.Core/FSpot.Core/IBrowsableCollection.cs
similarity index 94%
rename from src/Core/IBrowsableCollection.cs
rename to src/Core/FSpot.Core/FSpot.Core/IBrowsableCollection.cs
index c81bc77..db8e217 100644
--- a/src/Core/IBrowsableCollection.cs
+++ b/src/Core/FSpot.Core/FSpot.Core/IBrowsableCollection.cs
@@ -1,13 +1,13 @@
 /*
- * FSpot.IBrowsableCollection.cs
- * 
+ * IBrowsableCollection.cs
+ *
  * Author(s):
  *	Larry Ewing <lewing novell com>
  *
  * This is free software. See COPYING for details.
  */
 
-namespace FSpot
+namespace FSpot.Core
 {
 	public delegate void IBrowsableCollectionChangedHandler (IBrowsableCollection collection);
 	public delegate void IBrowsableCollectionItemsChangedHandler (IBrowsableCollection collection, BrowsableEventArgs args);
@@ -17,7 +17,7 @@ namespace FSpot
 		IBrowsableItem [] Items {
 			get;
 		}
-		
+
 		int IndexOf (IBrowsableItem item);
 
 		IBrowsableItem this [int index] {
@@ -41,4 +41,3 @@ namespace FSpot
 		void MarkChanged (int index, IBrowsableItemChanges changes);
 	}
 }
-
diff --git a/src/Core/IBrowsableItem.cs b/src/Core/FSpot.Core/FSpot.Core/IBrowsableItem.cs
similarity index 98%
rename from src/Core/IBrowsableItem.cs
rename to src/Core/FSpot.Core/FSpot.Core/IBrowsableItem.cs
index 47b09c1..dd9375d 100644
--- a/src/Core/IBrowsableItem.cs
+++ b/src/Core/FSpot.Core/FSpot.Core/IBrowsableItem.cs
@@ -1,6 +1,6 @@
 /*
  * IBrowsableItem.cs
- * 
+ *
  * Author(s):
  *  Larry Ewing <lewing novell com>
  *  Mike Gemuende <mike gemuende de>
@@ -13,7 +13,7 @@ using System.Collections.Generic;
 using Hyena;
 
 
-namespace FSpot
+namespace FSpot.Core
 {
 
 	public interface IBrowsableItem
diff --git a/src/Core/IBrowsableItemChanges.cs b/src/Core/FSpot.Core/FSpot.Core/IBrowsableItemChanges.cs
similarity index 87%
rename from src/Core/IBrowsableItemChanges.cs
rename to src/Core/FSpot.Core/FSpot.Core/IBrowsableItemChanges.cs
index 4bcc510..dcc0d73 100644
--- a/src/Core/IBrowsableItemChanges.cs
+++ b/src/Core/FSpot.Core/FSpot.Core/IBrowsableItemChanges.cs
@@ -1,5 +1,5 @@
 /*
- * FSpot.IBrowsableItemChanges.cs
+ * IBrowsableItemChanges.cs
  *
  * Author(s):
  * 	Stephane Delcroix <stephane delcroix org>
@@ -7,7 +7,7 @@
  * This is free software. See COPYING for details
  */
 
-namespace FSpot
+namespace FSpot.Core
 {
 	public interface IBrowsableItemChanges
 	{
@@ -19,7 +19,7 @@ namespace FSpot
 	{
 		static FullInvalidate instance = new FullInvalidate ();
 		public static FullInvalidate Instance {
-			get { return instance; } 
+			get { return instance; }
 		}
 
 		public bool DataChanged {
@@ -34,7 +34,7 @@ namespace FSpot
 	{
 		static InvalidateData instance = new InvalidateData ();
 		public static InvalidateData Instance {
-			get { return instance; } 
+			get { return instance; }
 		}
 
 		public bool DataChanged { get { return true; } }
diff --git a/src/Core/IBrowsableItemComparer.cs b/src/Core/FSpot.Core/FSpot.Core/IBrowsableItemComparer.cs
similarity index 97%
rename from src/Core/IBrowsableItemComparer.cs
rename to src/Core/FSpot.Core/FSpot.Core/IBrowsableItemComparer.cs
index d68e0f5..21d23ae 100644
--- a/src/Core/IBrowsableItemComparer.cs
+++ b/src/Core/FSpot.Core/FSpot.Core/IBrowsableItemComparer.cs
@@ -2,7 +2,7 @@ using System;
 using System.Collections;
 using System.Collections.Generic;
 
-namespace FSpot
+namespace FSpot.Core
 {
 	public static class IBrowsableItemComparer {
 		public class CompareDateName : IComparer<IBrowsableItem>
diff --git a/src/Core/IBrowsableItemExtensions.cs b/src/Core/FSpot.Core/FSpot.Core/IBrowsableItemExtensions.cs
similarity index 97%
rename from src/Core/IBrowsableItemExtensions.cs
rename to src/Core/FSpot.Core/FSpot.Core/IBrowsableItemExtensions.cs
index 6a1624d..054e3c7 100644
--- a/src/Core/IBrowsableItemExtensions.cs
+++ b/src/Core/FSpot.Core/FSpot.Core/IBrowsableItemExtensions.cs
@@ -1,7 +1,7 @@
 using System;
 using System.IO;
 
-namespace FSpot
+namespace FSpot.Core
 {
 	public static class IBrowsableItemExtensions {
 		public static int CompareDate (this IBrowsableItem photo1, IBrowsableItem photo2)
diff --git a/src/Core/IBrowsableItemVersion.cs b/src/Core/FSpot.Core/FSpot.Core/IBrowsableItemVersion.cs
similarity index 97%
rename from src/Core/IBrowsableItemVersion.cs
rename to src/Core/FSpot.Core/FSpot.Core/IBrowsableItemVersion.cs
index f0e5e00..88c800e 100644
--- a/src/Core/IBrowsableItemVersion.cs
+++ b/src/Core/FSpot.Core/FSpot.Core/IBrowsableItemVersion.cs
@@ -1,6 +1,6 @@
 /*
  * IBrowsableItemVersion.cs
- * 
+ *
  * Author(s):
  *  Ruben Vermeersch <ruben savanne be>
  *  Mike Gemuende <mike gemuende de>
@@ -11,7 +11,7 @@
 using Hyena;
 
 
-namespace FSpot
+namespace FSpot.Core
 {
 
 	public interface IBrowsableItemVersion : ILoadable
@@ -31,7 +31,7 @@ namespace FSpot
 		bool IsProtected { get; }
 
 		// TODO: add more metadata
-		
+
 #endregion
 
 
@@ -39,7 +39,7 @@ namespace FSpot
 
 		// TODO: BaseUri and Filename are just in the database scheme. Does it make sense to provide them
 		//       to the outside?
-		
+
 		/// <summary>
 		///   The base uri of the directory of this version. That is the whole uri without the
 		///   filename.
diff --git a/src/Core/IBrowsableItemVersionable.cs b/src/Core/FSpot.Core/FSpot.Core/IBrowsableItemVersionable.cs
similarity index 96%
rename from src/Core/IBrowsableItemVersionable.cs
rename to src/Core/FSpot.Core/FSpot.Core/IBrowsableItemVersionable.cs
index 03c9cb4..9bf8878 100644
--- a/src/Core/IBrowsableItemVersionable.cs
+++ b/src/Core/FSpot.Core/FSpot.Core/IBrowsableItemVersionable.cs
@@ -1,6 +1,6 @@
 /*
  * IBrowsableItemVersion.cs
- * 
+ *
  * Author(s):
  *  Ruben Vermeersch <ruben savanne be>
  *  Mike Gemuende <mike gemuende de>
@@ -10,7 +10,7 @@
 
 using System.Collections.Generic;
 
-namespace FSpot
+namespace FSpot.Core
 {
 	/// <summary>
 	///    The interface adds functionality which is related to items where
diff --git a/src/Core/ILoadable.cs b/src/Core/FSpot.Core/FSpot.Core/ILoadable.cs
similarity index 91%
rename from src/Core/ILoadable.cs
rename to src/Core/FSpot.Core/FSpot.Core/ILoadable.cs
index 4a89908..034f7cb 100644
--- a/src/Core/ILoadable.cs
+++ b/src/Core/FSpot.Core/FSpot.Core/ILoadable.cs
@@ -1,6 +1,6 @@
 using Hyena;
 
-namespace FSpot
+namespace FSpot.Core
 {
 	/// <summary>
 	///    This is the contract that needs to be implemented before the image
diff --git a/src/Core/PhotoChanges.cs b/src/Core/FSpot.Core/FSpot.Core/PhotoChanges.cs
similarity index 99%
rename from src/Core/PhotoChanges.cs
rename to src/Core/FSpot.Core/FSpot.Core/PhotoChanges.cs
index 708fe49..fd1ae42 100644
--- a/src/Core/PhotoChanges.cs
+++ b/src/Core/FSpot.Core/FSpot.Core/PhotoChanges.cs
@@ -10,7 +10,7 @@
 using System;
 using System.Collections.Generic;
 
-namespace FSpot
+namespace FSpot.Core
 {
 	//Track the changes done to a Photo between Commit's
 	public class PhotoChanges : PhotosChanges
diff --git a/src/Core/PhotosChanges.cs b/src/Core/FSpot.Core/FSpot.Core/PhotosChanges.cs
similarity index 97%
rename from src/Core/PhotosChanges.cs
rename to src/Core/FSpot.Core/FSpot.Core/PhotosChanges.cs
index ddbd52c..6dd377c 100644
--- a/src/Core/PhotosChanges.cs
+++ b/src/Core/FSpot.Core/FSpot.Core/PhotosChanges.cs
@@ -10,7 +10,7 @@
 using System;
 using System.Collections.Generic;
 
-namespace FSpot
+namespace FSpot.Core
 {
 	//used to aggregate PhotoChanges and notifying the various ui pieces
 	public class PhotosChanges : IBrowsableItemChanges
@@ -109,14 +109,14 @@ namespace FSpot
 		}
 
 		public bool MD5SumChanged {
-			get { return (changes & Changes.MD5Sum) == Changes.MD5Sum ; } 
+			get { return (changes & Changes.MD5Sum) == Changes.MD5Sum ; }
 			set {
 				if (value)
-				 	changes |= Changes.MD5Sum;
+					changes |= Changes.MD5Sum;
 				else
-				 	changes &= ~Changes.MD5Sum; 
+					changes &= ~Changes.MD5Sum;
 			}
-		 
+
 		}
 
 		public static PhotosChanges operator | (PhotosChanges c1, PhotosChanges c2)
diff --git a/src/Core/Roll.cs b/src/Core/FSpot.Core/FSpot.Core/Roll.cs
similarity index 95%
rename from src/Core/Roll.cs
rename to src/Core/FSpot.Core/FSpot.Core/Roll.cs
index 3cc02b2..226fa90 100644
--- a/src/Core/Roll.cs
+++ b/src/Core/FSpot.Core/FSpot.Core/Roll.cs
@@ -11,7 +11,7 @@
 using System;
 using Hyena;
 
-namespace FSpot
+namespace FSpot.Core
 {
 	public class Roll : DbItem
 	{
@@ -20,7 +20,7 @@ namespace FSpot
 		public DateTime Time {
 			get { return time; }
 		}
-	
+
 		public Roll (uint id, long unix_time) : base (id)
 		{
 			time = DateTimeUtil.ToDateTime (unix_time);
diff --git a/src/Core/Tag.cs b/src/Core/FSpot.Core/FSpot.Core/Tag.cs
similarity index 92%
rename from src/Core/Tag.cs
rename to src/Core/FSpot.Core/FSpot.Core/Tag.cs
index 7a64a6f..81452e1 100644
--- a/src/Core/Tag.cs
+++ b/src/Core/FSpot.Core/FSpot.Core/Tag.cs
@@ -1,6 +1,6 @@
 /*
  * FSpot.Tag
- * 
+ *
  * Author(s):
  *	Larry Ewing  <lewing novell com>
  *	Stephane Delcroix  <stephane delcroix org>
@@ -13,7 +13,7 @@ using Gdk;
 using FSpot.Utils;
 using Hyena;
 
-namespace FSpot
+namespace FSpot.Core
 {
 	public class Tag : DbItem, IComparable<Tag>, IDisposable {
 		string name;
@@ -21,26 +21,26 @@ namespace FSpot
 			get { return name; }
 			set {  name = value;}
 		}
-	
+
 		Category category;
 		public Category Category {
 			get { return category; }
 			set {
 				if (Category != null)
 					Category.RemoveChild (this);
-	
+
 				category = value;
 				if (category != null)
 					category.AddChild (this);
 			}
 		}
-	
+
 		int sort_priority;
 		public int SortPriority {
 			get { return sort_priority; }
 			set { sort_priority = value; }
 		}
-	
+
 		int popularity = 0;
 		public int Popularity {
 			get { return popularity; }
@@ -48,19 +48,19 @@ namespace FSpot
 		}
 
 		// Icon.  If theme_icon_name is not null, then we save the name of the icon instead
-		// of the actual icon data.	
+		// of the actual icon data.
 		string theme_icon_name;
 		public string ThemeIconName {
 			get { return theme_icon_name; }
 			set { theme_icon_name = value; }
 		}
-	
+
 		Pixbuf icon;
 		public Pixbuf Icon {
 			get {
 				if (icon == null && theme_icon_name != null) {
 					cached_icon_size = IconSize.Hidden;
-					icon = GtkUtil.TryLoadIcon (FSpot.Global.IconTheme, theme_icon_name, 48, (Gtk.IconLookupFlags)0);
+					icon = GtkUtil.TryLoadIcon (Global.IconTheme, theme_icon_name, 48, (Gtk.IconLookupFlags)0);
 				}
 				return icon;
 			}
@@ -79,23 +79,23 @@ namespace FSpot
 			get { return icon_was_cleared; }
 			set { icon_was_cleared = value; }
 		}
-	
+
 		public enum IconSize {
 			Hidden = 0,
 			Small = 16,
 			Medium = 24,
 			Large = 48
 		};
-	
+
 		static IconSize tag_icon_size = IconSize.Large;
 		public static IconSize TagIconSize {
 			get { return tag_icon_size; }
 			set { tag_icon_size = value; }
 		}
-	
+
 		Pixbuf cached_icon;
 		private IconSize cached_icon_size = IconSize.Hidden;
-	
+
 		// We can use a SizedIcon everywhere we were using an Icon
 		public Pixbuf SizedIcon {
 			get {
@@ -106,9 +106,9 @@ namespace FSpot
 				if (theme_icon_name != null) { //Theme icon
 					if (cached_icon != null)
 						cached_icon.Dispose ();
-					cached_icon = GtkUtil.TryLoadIcon (FSpot.Global.IconTheme, theme_icon_name, (int) tag_icon_size, (Gtk.IconLookupFlags)0);
-	
-					if (Math.Max (cached_icon.Width, cached_icon.Height) <= (int) tag_icon_size) 
+					cached_icon = GtkUtil.TryLoadIcon (Global.IconTheme, theme_icon_name, (int) tag_icon_size, (Gtk.IconLookupFlags)0);
+
+					if (Math.Max (cached_icon.Width, cached_icon.Height) <= (int) tag_icon_size)
 						return cached_icon;
 				}
 				if (Icon == null)
@@ -122,10 +122,10 @@ namespace FSpot
 					return cached_icon;
 				} else
 					return Icon;
-			}	
+			}
 		}
-	
-	
+
+
 		// You are not supposed to invoke these constructors outside of the TagStore class.
 		public Tag (Category category, uint id, string name)
 			: base (id)
@@ -133,8 +133,8 @@ namespace FSpot
 			Category = category;
 			Name = name;
 		}
-	
-	
+
+
 		// IComparer.
 		public int CompareTo (Tag tag)
 		{
@@ -150,7 +150,7 @@ namespace FSpot
 				return Category.CompareTo (tag.Category);
 			}
 		}
-		
+
 		public bool IsAncestorOf (Tag tag)
 		{
 			if (tag == null)
@@ -160,7 +160,7 @@ namespace FSpot
 				if (parent == this)
 					return true;
 			}
-	
+
 			return false;
 		}
 
diff --git a/src/Core/FSpot.Core/Makefile.am b/src/Core/FSpot.Core/Makefile.am
new file mode 100644
index 0000000..0510565
--- /dev/null
+++ b/src/Core/FSpot.Core/Makefile.am
@@ -0,0 +1,34 @@
+ASSEMBLY = FSpot.Core
+TARGET = library
+LINK = $(REF_FSPOT_CORE)
+
+SOURCES = \
+	FSpot.Core/BrowsableCollectionProxy.cs \
+	FSpot.Core/BrowsableEventArgs.cs \
+	FSpot.Core/BrowsablePointer.cs \
+	FSpot.Core/BrowsablePointerChangedEventArgs.cs \
+	FSpot.Core/Category.cs \
+	FSpot.Core/DbItem.cs \
+	FSpot.Core/Delay.cs \
+	FSpot.Core/Tag.cs \
+	FSpot.Core/Global.cs \
+	FSpot.Core/FileBrowsableItem.cs \
+	FSpot.Core/IBrowsableItem.cs \
+	FSpot.Core/IBrowsableItemChanges.cs \
+	FSpot.Core/IBrowsableItemComparer.cs \
+	FSpot.Core/IBrowsableItemExtensions.cs \
+	FSpot.Core/IBrowsableItemVersion.cs \
+	FSpot.Core/IBrowsableItemVersionable.cs \
+	FSpot.Core/IBrowsableCollection.cs \
+	FSpot.Core/ILoadable.cs \
+	FSpot.Core/PhotoChanges.cs \
+	FSpot.Core/PhotosChanges.cs \
+	FSpot.Core/Roll.cs \
+	FSpot.Core/Defines.cs
+
+RESOURCES =
+
+include $(top_srcdir)/build/build.mk
+
+EXTRA_DIST += FSpot.Core.dll.config
+module_SCRIPTS += FSpot.Core.dll.config
diff --git a/src/Core/Makefile.am b/src/Core/Makefile.am
index dcbbda8..596d2c8 100644
--- a/src/Core/Makefile.am
+++ b/src/Core/Makefile.am
@@ -1,34 +1,2 @@
-ASSEMBLY = FSpot.Core
-TARGET = library
-LINK = $(REF_FSPOT_CORE)
-
-SOURCES = \
-	BrowsableCollectionProxy.cs \
-	BrowsableEventArgs.cs \
-	BrowsablePointer.cs \
-	BrowsablePointerChangedEventArgs.cs \
-	Category.cs \
-	DbItem.cs \
-	Delay.cs \
-	Tag.cs \
-	Global.cs \
-	FileBrowsableItem.cs \
-	IBrowsableItem.cs \
-	IBrowsableItemChanges.cs \
-	IBrowsableItemComparer.cs \
-	IBrowsableItemExtensions.cs \
-	IBrowsableItemVersion.cs \
-	IBrowsableItemVersionable.cs \
-	IBrowsableCollection.cs \
-	ILoadable.cs \
-	PhotoChanges.cs \
-	PhotosChanges.cs \
-	Roll.cs \
-	Defines.cs
-
-RESOURCES =
-
-include $(top_srcdir)/build/build.mk
-
-EXTRA_DIST += FSpot.Core.dll.config
-module_SCRIPTS += FSpot.Core.dll.config
+SUBDIRS = \
+		FSpot.Core
diff --git a/src/Db.cs b/src/Db.cs
index a654d0f..4779ad7 100644
--- a/src/Db.cs
+++ b/src/Db.cs
@@ -5,6 +5,7 @@ using System.IO;
 using System;
 using System.Diagnostics;
 using FSpot;
+using FSpot.Core;
 using Hyena;
 
 // A Store maps to a SQL table.  We have separate stores (i.e. SQL tables) for tags, photos and imports.
diff --git a/src/Editors/CropEditor.cs b/src/Editors/CropEditor.cs
index 375e8cc..c124ca0 100644
--- a/src/Editors/CropEditor.cs
+++ b/src/Editors/CropEditor.cs
@@ -165,7 +165,7 @@ namespace FSpot.Editors {
 		{
 			string stockname = (string)tree_model.GetValue (iter, 0);
 			if (stockname != null)
-				(cell as CellRendererPixbuf).Pixbuf = GtkUtil.TryLoadIcon (FSpot.Global.IconTheme, stockname, 16, (Gtk.IconLookupFlags)0);
+				(cell as CellRendererPixbuf).Pixbuf = GtkUtil.TryLoadIcon (FSpot.Core.Global.IconTheme, stockname, 16, (Gtk.IconLookupFlags)0);
 			else
 				(cell as CellRendererPixbuf).Pixbuf = null;
 		}
diff --git a/src/Editors/Editor.cs b/src/Editors/Editor.cs
index a84a5e9..089641c 100644
--- a/src/Editors/Editor.cs
+++ b/src/Editors/Editor.cs
@@ -9,6 +9,7 @@
 
 using Hyena;
 
+using FSpot.Core;
 using FSpot.Widgets;
 using FSpot.Imaging;
 
diff --git a/src/ExportStore.cs b/src/ExportStore.cs
index f730558..ab85756 100644
--- a/src/ExportStore.cs
+++ b/src/ExportStore.cs
@@ -5,6 +5,7 @@ using System.IO;
 using System.Data;
 using System;
 using FSpot;
+using FSpot.Core;
 using FSpot.Database;
 using Hyena.Data.Sqlite;
 
diff --git a/src/Extensions/IExporter.cs b/src/Extensions/IExporter.cs
index 5086e80..d59bcfe 100644
--- a/src/Extensions/IExporter.cs
+++ b/src/Extensions/IExporter.cs
@@ -11,6 +11,8 @@
 using Mono.Addins;
 using System;
 
+using FSpot.Core;
+
 namespace FSpot.Extensions
 {
 	public interface IExporter
diff --git a/src/FullScreenView.cs b/src/FullScreenView.cs
index e21b9fd..12f4263 100644
--- a/src/FullScreenView.cs
+++ b/src/FullScreenView.cs
@@ -10,6 +10,7 @@
 using System;
 using Gtk;
 using Gdk;
+using FSpot.Core;
 using FSpot.Widgets;
 using FSpot.Utils;
 using Hyena;
diff --git a/src/GroupAdaptor.cs b/src/GroupAdaptor.cs
index 75d65dd..b5d1a6a 100644
--- a/src/GroupAdaptor.cs
+++ b/src/GroupAdaptor.cs
@@ -1,3 +1,4 @@
+using FSpot.Core;
 using FSpot.Utils;
 
 namespace FSpot {
@@ -34,8 +35,8 @@ namespace FSpot {
 		protected abstract void Reload ();
 
 		public abstract void SetGlass (int item);
-		public abstract int IndexFromPhoto (FSpot.IBrowsableItem photo);
-		public abstract FSpot.IBrowsableItem PhotoFromIndex (int item);
+		public abstract int IndexFromPhoto (IBrowsableItem photo);
+		public abstract IBrowsableItem PhotoFromIndex (int item);
 
 		public delegate void GlassSetHandler (GroupAdaptor adaptor, int index);
 		public virtual event GlassSetHandler GlassSet;
diff --git a/src/GroupSelector.cs b/src/GroupSelector.cs
index 6bd0d62..612c7f2 100644
--- a/src/GroupSelector.cs
+++ b/src/GroupSelector.cs
@@ -3,6 +3,7 @@ using Mono.Unix;
 using Gtk;
 using Gdk;
 using GLib;
+using FSpot.Core;
 using FSpot.Utils;
 
 namespace FSpot {
diff --git a/src/Import/FileImportSource.cs b/src/Import/FileImportSource.cs
index 2d78a1b..d16f97f 100644
--- a/src/Import/FileImportSource.cs
+++ b/src/Import/FileImportSource.cs
@@ -2,6 +2,7 @@ using Hyena;
 using System;
 using System.Threading;
 using System.Collections.Generic;
+using FSpot.Core;
 using FSpot.Utils;
 using FSpot.Imaging;
 using Gtk;
diff --git a/src/Import/ImportController.cs b/src/Import/ImportController.cs
index db8ac49..5d4fe2f 100644
--- a/src/Import/ImportController.cs
+++ b/src/Import/ImportController.cs
@@ -1,4 +1,5 @@
 using Hyena;
+using FSpot.Core;
 using FSpot.Utils;
 using System;
 using System.Collections.Generic;
diff --git a/src/Import/MetadataImporter.cs b/src/Import/MetadataImporter.cs
index fa71560..027564e 100644
--- a/src/Import/MetadataImporter.cs
+++ b/src/Import/MetadataImporter.cs
@@ -1,6 +1,7 @@
 using System;
 using Mono.Unix;
 using System.Collections.Generic;
+using FSpot.Core;
 using FSpot.Utils;
 
 namespace FSpot.Import {
diff --git a/src/InfoOverlay.cs b/src/InfoOverlay.cs
index 0a767c7..5d018b4 100644
--- a/src/InfoOverlay.cs
+++ b/src/InfoOverlay.cs
@@ -8,6 +8,7 @@
  *
  */
 using Gtk;
+using FSpot.Core;
 using FSpot.Widgets;
 
 namespace FSpot {
diff --git a/src/ItemAction.cs b/src/ItemAction.cs
index 9a9bd11..f2ab0ee 100644
--- a/src/ItemAction.cs
+++ b/src/ItemAction.cs
@@ -11,6 +11,7 @@
  */
 using Gtk;
 using Mono.Unix;
+using FSpot.Core;
 using FSpot.Filters;
 using System;
 using FSpot.UI.Dialog;
diff --git a/src/JobStore.cs b/src/JobStore.cs
index f36b60c..16deefe 100644
--- a/src/JobStore.cs
+++ b/src/JobStore.cs
@@ -15,6 +15,7 @@ using System;
 using Banshee.Kernel;
 using FSpot.Jobs;
 using FSpot;
+using FSpot.Core;
 using Hyena;
 
 using Hyena.Data.Sqlite;
diff --git a/src/Jobs/SyncMetadataJob.cs b/src/Jobs/SyncMetadataJob.cs
index ca99a7b..6b1c9c1 100644
--- a/src/Jobs/SyncMetadataJob.cs
+++ b/src/Jobs/SyncMetadataJob.cs
@@ -10,6 +10,7 @@
 using System;
 using Banshee.Kernel;
 using Hyena;
+using FSpot.Core;
 using FSpot.Utils;
 using Mono.Unix;
 
@@ -66,7 +67,7 @@ namespace FSpot.Jobs {
                 tag.Comment = photo.Description ?? String.Empty;
                 tag.Keywords = names;
                 tag.Rating = photo.Rating;
-                tag.Software = FSpot.Defines.PACKAGE + " version " + FSpot.Defines.VERSION;
+                tag.Software = Defines.PACKAGE + " version " + Defines.VERSION;
 
                 var always_sidecar = Preferences.Get<bool> (Preferences.METADATA_ALWAYS_USE_SIDECAR);
                 if (always_sidecar || !metadata.Writeable || metadata.PossiblyCorrupt) {
diff --git a/src/Loupe.cs b/src/Loupe.cs
index b2ecee9..bc863eb 100644
--- a/src/Loupe.cs
+++ b/src/Loupe.cs
@@ -15,6 +15,7 @@ using Gdk;
 using System;
 using System.Runtime.InteropServices;
 using Mono.Unix;
+using FSpot.Core;
 using FSpot.Utils;
 using Hyena;
 
diff --git a/src/MainWindow.cs b/src/MainWindow.cs
index 6a09393..c582b40 100644
--- a/src/MainWindow.cs
+++ b/src/MainWindow.cs
@@ -22,6 +22,7 @@ using Hyena.Widgets;
 using Banshee.Kernel;
 
 using FSpot;
+using FSpot.Core;
 using FSpot.Extensions;
 using FSpot.Query;
 using FSpot.Widgets;
@@ -990,7 +991,7 @@ namespace FSpot
 			if (cell_num == -1 /*|| cell_num == lastTopLeftCell*/)
 				return;
 	
-			FSpot.IBrowsableItem photo = icon_view.Collection [cell_num];
+			IBrowsableItem photo = icon_view.Collection [cell_num];
 	#if false
 			group_selector.Adaptor.GlassSet -= HandleAdaptorGlassSet;
 			group_selector.Adaptor.SetGlass (group_selector.Adaptor.IndexFromPhoto (photo));
@@ -1457,7 +1458,7 @@ namespace FSpot
 	
 		void HandlePageSetupActivated (object o, EventArgs e)
 		{
-			FSpot.Global.PageSetup = Print.RunPageSetupDialog (this.Window, FSpot.Global.PageSetup, null);
+			FSpot.Core.Global.PageSetup = Print.RunPageSetupDialog (this.Window, FSpot.Core.Global.PageSetup, null);
 		}
 		
 		void HandlePrintCommand (object sender, EventArgs e)
diff --git a/src/Makefile.am b/src/Makefile.am
index ee68fda..329c3d8 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -15,6 +15,7 @@ LINK = $(REF_FSPOT)
 ASSEMBLY_BUILD_FLAGS = -unsafe
 
 SOURCES = \
+	App.cs \
 	BitConverter.cs \
 	PhotoList.cs \
 	ColorAdjustment/Adjustment.cs \
@@ -22,11 +23,8 @@ SOURCES = \
 	ColorAdjustment/Desaturate.cs \
 	ColorAdjustment/FullColorAdjustment.cs \
 	ColorAdjustment/SepiaTone.cs \
+	ColorManagement.cs \
 	ControlOverlay.cs \
-	Core/App.cs \
-	Core/ColorManagement.cs \
-	Core/Photo.cs \
-	Core/PhotoVersion.cs \
 	Db.cs \
 	DependentListStore.cs \
 	DragDropTargets.cs \
@@ -97,6 +95,7 @@ SOURCES = \
 	MainWindow.cs \
 	MemorySurface.cs \
 	MetaStore.cs \
+	Photo.cs \
 	PhotoEventArgs.cs \
 	PhotoImageView.cs \
 	PhotoLoader.cs \
@@ -105,6 +104,7 @@ SOURCES = \
 	PhotoStore.cs \
 	PhotoTagMenu.cs \
 	PhotoVersionCommands.cs \
+	PhotoVersion.cs \
 	PhotoVersionMenu.cs \
 	PhotoView.cs \
 	PixbufUtils.cs \
diff --git a/src/MetaStore.cs b/src/MetaStore.cs
index fe381c9..c907b9a 100644
--- a/src/MetaStore.cs
+++ b/src/MetaStore.cs
@@ -5,6 +5,7 @@ using System.IO;
 using System.Data;
 using System;
 using FSpot;
+using FSpot.Core;
 using FSpot.Database;
 using Hyena.Data.Sqlite;
 
@@ -73,7 +74,7 @@ public class MetaStore : DbStore<MetaItem> {
 
 	private void CreateDefaultItems (bool is_new)
 	{
-		Create (version, FSpot.Defines.VERSION);
+		Create (version, Defines.VERSION);
 		Create (db_version, (is_new) ? FSpot.Database.Updater.LatestVersion.ToString () : "0");
 		
 		// Get the hidden tag id, if it exists
@@ -103,8 +104,8 @@ public class MetaStore : DbStore<MetaItem> {
 
 		reader.Close ();
 
-		if (FSpotVersion.Value != FSpot.Defines.VERSION) {
-			FSpotVersion.Value = FSpot.Defines.VERSION;
+		if (FSpotVersion.Value != Defines.VERSION) {
+			FSpotVersion.Value = Defines.VERSION;
 			Commit (FSpotVersion);
 		}
 	}
diff --git a/src/Core/Photo.cs b/src/Photo.cs
similarity index 95%
rename from src/Core/Photo.cs
rename to src/Photo.cs
index e0b092d..37602d2 100644
--- a/src/Core/Photo.cs
+++ b/src/Photo.cs
@@ -5,7 +5,7 @@
  *	Ettore Perazzoli <ettore perazzoli org>
  *	Larry Ewing <lewing gnome org>
  *	Stephane Delcroix <stephane delcroix org>
- * 
+ *
  * This is free software. See COPYING for details.
  */
 
@@ -19,6 +19,7 @@ using System.Collections.Generic;
 
 using Mono.Unix;
 
+using FSpot.Core;
 using FSpot.Utils;
 using FSpot.Platform;
 using FSpot.Imaging;
@@ -26,7 +27,7 @@ using FSpot.Imaging;
 namespace FSpot
 {
 	public class Photo : DbItem, IComparable, IBrowsableItem, IBrowsableItemVersionable {
-		
+
 		PhotoChanges changes = new PhotoChanges ();
 		public PhotoChanges Changes {
 			get{ return changes; }
@@ -48,33 +49,33 @@ namespace FSpot
 				changes.TimeChanged = true;
 			}
 		}
-	
+
 		public string Name {
 			get { return Uri.UnescapeDataString (System.IO.Path.GetFileName (VersionUri (OriginalVersionId).AbsolutePath)); }
 		}
-	
+
 		private ArrayList tags;
 		public Tag [] Tags {
 			get {
 				if (tags == null)
 					return new Tag [0];
-	
+
 				return (Tag []) tags.ToArray (typeof (Tag));
 			}
 		}
-	
+
 		private bool loaded = false;
 		public bool Loaded {
 			get { return loaded; }
-			set { 
+			set {
 				if (value) {
-					if (DefaultVersionId != OriginalVersionId && !versions.ContainsKey (DefaultVersionId)) 
-						DefaultVersionId = OriginalVersionId;	
+					if (DefaultVersionId != OriginalVersionId && !versions.ContainsKey (DefaultVersionId))
+						DefaultVersionId = OriginalVersionId;
 				}
-				loaded = value; 
+				loaded = value;
 			}
 		}
-	
+
 		private string description;
 		public string Description {
 			get { return description; }
@@ -85,7 +86,7 @@ namespace FSpot
 				changes.DescriptionChanged = true;
 			}
 		}
-	
+
 		private uint roll_id = 0;
 		public uint RollId {
 			get { return roll_id; }
@@ -96,7 +97,7 @@ namespace FSpot
 				changes.RollIdChanged = true;
 			}
 		}
-	
+
 		private uint rating;
 		public uint Rating {
 			get { return rating; }
@@ -111,7 +112,7 @@ namespace FSpot
 		// Version management
 		public const int OriginalVersionId = 1;
 		private uint highest_version_id;
-	
+
 		private Dictionary<uint, PhotoVersion> versions = new Dictionary<uint, PhotoVersion> ();
 		public IEnumerable<IBrowsableItemVersion> Versions {
 			get {
@@ -136,10 +137,10 @@ namespace FSpot
 		{
 			if (versions == null)
 				return null;
-	
+
 			return versions [version_id];
 		}
-	
+
 		private uint default_version_id = OriginalVersionId;
 		public uint DefaultVersionId {
 			get { return default_version_id; }
@@ -150,22 +151,22 @@ namespace FSpot
 				changes.DefaultVersionIdChanged = true;
 			}
 		}
-	
-		// This doesn't check if a version of that name already exists, 
+
+		// This doesn't check if a version of that name already exists,
 		// it's supposed to be used only within the Photo and PhotoStore classes.
 		internal void AddVersionUnsafely (uint version_id, SafeUri base_uri, string filename, string import_md5, string name, bool is_protected)
 		{
 			versions [version_id] = new PhotoVersion (this, version_id, base_uri, filename, import_md5, name, is_protected);
-	
+
 			highest_version_id = Math.Max (version_id, highest_version_id);
 			changes.AddVersion (version_id);
 		}
-	
+
 		public uint AddVersion (SafeUri base_uri, string filename, string name)
 		{
 			return AddVersion (base_uri, filename, name, false);
 		}
-	
+
 		public uint AddVersion (SafeUri base_uri, string filename, string name, bool is_protected)
 		{
 			if (VersionNameExists (name))
@@ -178,17 +179,17 @@ namespace FSpot
 			changes.AddVersion (highest_version_id);
 			return highest_version_id;
 		}
-	
+
 		//FIXME: store versions next to originals. will crash on ro locations.
 		private string GetFilenameForVersionName (string version_name, string extension)
 		{
 			string name_without_extension = System.IO.Path.GetFileNameWithoutExtension (Name);
-	
+
 			return name_without_extension + " (" +
 				UriUtils.EscapeString (version_name, true, true, true)
 				+ ")" + extension;
 		}
-	
+
 		public bool VersionNameExists (string version_name)
 		{
             return Versions.Where ((v) => v.Name == version_name).Any ();
@@ -198,19 +199,19 @@ namespace FSpot
 		{
 			if (!versions.ContainsKey (version_id))
 				return null;
-	
-			PhotoVersion v = versions [version_id]; 
+
+			PhotoVersion v = versions [version_id];
 			if (v != null)
 				return v.Uri;
-	
+
 			return null;
 		}
-		
+
 		public IBrowsableItemVersion DefaultVersion {
 			get {
 				if (!versions.ContainsKey (DefaultVersionId))
 					throw new Exception ("Something is horribly wrong, this should never happen: no default version!");
-				return versions [DefaultVersionId]; 
+				return versions [DefaultVersionId];
 			}
 		}
 
@@ -231,13 +232,13 @@ namespace FSpot
 			using (var img = ImageFile.Create (DefaultVersion.Uri)) {
 				// Always create a version if the source is not a jpeg for now.
 				create_version = create_version || ImageFile.IsJpeg (DefaultVersion.Uri);
-	
+
 				if (buffer == null)
 					throw new ApplicationException ("invalid (null) image");
-	
+
 				if (create_version)
 					version = CreateDefaultModifiedVersion (DefaultVersionId, false);
-	
+
 				try {
 					var versionUri = VersionUri (version);
 
@@ -248,11 +249,11 @@ namespace FSpot
 					Log.Exception (e);
 					if (create_version)
 						DeleteVersion (version);
-				
+
 					throw e;
 				}
 			}
-			
+
 			return version;
 		}
 
@@ -260,19 +261,19 @@ namespace FSpot
 		{
 			DeleteVersion (version_id, false, false);
 		}
-	
+
 		public void DeleteVersion (uint version_id, bool remove_original)
 		{
 			DeleteVersion (version_id, remove_original, false);
 		}
-	
+
 		public void DeleteVersion (uint version_id, bool remove_original, bool keep_file)
 		{
 			if (version_id == OriginalVersionId && !remove_original)
 				throw new Exception ("Cannot delete original version");
-	
+
 			SafeUri uri = VersionUri (version_id);
-	
+
 			if (!keep_file) {
 				GLib.File file = GLib.FileFactory.NewForUri (uri);
 				if (file.Exists) {
@@ -316,7 +317,7 @@ namespace FSpot
 			// if the directory we're dealing with is not in the
 			// F-Spot photos directory, don't delete anything,
 			// even if it is empty
-			string photo_uri = SafeUri.UriToFilename (FSpot.Global.PhotoUri.ToString ());
+			string photo_uri = SafeUri.UriToFilename (Global.PhotoUri.ToString ());
 			bool path_matched = directory.Path.IndexOf (photo_uri) > -1;
 
 			if (directory.Path.Equals (photo_uri) || !path_matched)
@@ -355,7 +356,7 @@ namespace FSpot
 		{
 			return CreateVersion (name, extension, base_version_id, create, false);
 		}
-	
+
 		private uint CreateVersion (string name, string extension, uint base_version_id, bool create, bool is_protected)
 		{
 			extension = extension ?? VersionUri (base_version_id).GetExtension ();
@@ -364,15 +365,15 @@ namespace FSpot
 			SafeUri original_uri = VersionUri (base_version_id);
 			SafeUri new_uri = new_base_uri.Append (filename);
 			string import_md5 = DefaultVersion.ImportMD5;
-	
+
 			if (VersionNameExists (name))
 				throw new Exception ("This version name already exists");
-	
+
 			if (create) {
 				GLib.File destination = GLib.FileFactory.NewForUri (new_uri);
 				if (destination.Exists)
 					throw new Exception (String.Format ("An object at this uri {0} already exists", new_uri));
-	
+
 		//FIXME. or better, fix the copy api !
 				GLib.File source = GLib.FileFactory.NewForUri (original_uri);
 				source.Copy (destination, GLib.FileCopyFlags.None, null, null);
@@ -382,15 +383,15 @@ namespace FSpot
 			versions [highest_version_id] = new PhotoVersion (this, highest_version_id, new_base_uri, filename, import_md5, name, is_protected);
 
 			changes.AddVersion (highest_version_id);
-	
+
 			return highest_version_id;
 		}
-	
+
 		public uint CreateReparentedVersion (PhotoVersion version)
 		{
 			return CreateReparentedVersion (version, false);
 		}
-	
+
 		public uint CreateReparentedVersion (PhotoVersion version, bool is_protected)
 		{
 			// Try to derive version name from its filename
@@ -399,11 +400,11 @@ namespace FSpot
 			string name = null;
 			if (filename.StartsWith (parent_filename))
 				name = filename.Substring (parent_filename.Length).Replace ("(", "").Replace (")", "").Replace ("_", " "). Trim();
-			
+
 			if (String.IsNullOrEmpty (name)) {
 				// Note for translators: Reparented is a picture becoming a version of another one
 				string rep = name = Catalog.GetString ("Reparented");
-				for (int num = 1; VersionNameExists (name); num++) 
+				for (int num = 1; VersionNameExists (name); num++)
 					name = String.Format (rep + " ({0})", num);
 			}
 			highest_version_id ++;
@@ -413,97 +414,97 @@ namespace FSpot
 
 			return highest_version_id;
 		}
-	
+
 		public uint CreateDefaultModifiedVersion (uint base_version_id, bool create_file)
 		{
 			int num = 1;
-	
+
 			while (true) {
-				string name = Catalog.GetPluralString ("Modified", 
-									 "Modified ({0})", 
+				string name = Catalog.GetPluralString ("Modified",
+									 "Modified ({0})",
 									 num);
 				name = String.Format (name, num);
 				//SafeUri uri = GetUriForVersionName (name, System.IO.Path.GetExtension (VersionUri(base_version_id).GetFilename()));
 				string filename = GetFilenameForVersionName (name, System.IO.Path.GetExtension (versions[base_version_id].Filename));
 				SafeUri uri = DefaultVersion.BaseUri.Append (filename);
 				GLib.File file = GLib.FileFactory.NewForUri (uri);
-	
+
 				if (! VersionNameExists (name) && ! file.Exists)
 					return CreateVersion (name, base_version_id, create_file);
-	
+
 				num ++;
 			}
 		}
-	
+
 		public uint CreateNamedVersion (string name, string extension, uint base_version_id, bool create_file)
 		{
 			int num = 1;
-			
+
 			string final_name;
 			while (true) {
 				final_name = String.Format (
 						(num == 1) ? Catalog.GetString ("Modified in {1}") : Catalog.GetString ("Modified in {1} ({0})"),
 						num, name);
-	
+
 				string filename = GetFilenameForVersionName (name, System.IO.Path.GetExtension (versions[base_version_id].Filename));
 				SafeUri uri = DefaultVersion.BaseUri.Append (filename);
 				GLib.File file = GLib.FileFactory.NewForUri (uri);
 
 				if (! VersionNameExists (final_name) && ! file.Exists)
 					return CreateVersion (final_name, extension, base_version_id, create_file);
-	
+
 				num ++;
 			}
 		}
-	
+
 		public void RenameVersion (uint version_id, string new_name)
 		{
 			if (version_id == OriginalVersionId)
 				throw new Exception ("Cannot rename original version");
-	
+
 			if (VersionNameExists (new_name))
 				throw new Exception ("This name already exists");
-	
+
 
 			(GetVersion (version_id) as PhotoVersion).Name = new_name;
 			changes.ChangeVersion (version_id);
-	
+
 			//TODO: rename file too ???
-	
+
 	//		if (System.IO.File.Exists (new_path))
 	//			throw new Exception ("File with this name already exists");
 	//
 	//		File.Move (old_path, new_path);
 	//		PhotoStore.MoveThumbnail (old_path, new_path);
 		}
-		
-		public void CopyAttributesFrom (Photo that) 
-		{			
+
+		public void CopyAttributesFrom (Photo that)
+		{
 			Time = that.Time;
 			Description = that.Description;
 			Rating = that.Rating;
 			AddTag (that.Tags);
 		}
-	
+
 		// Tag management.
-	
+
 		// This doesn't check if the tag is already there, use with caution.
 		public void AddTagUnsafely (Tag tag)
 		{
 			if (tags == null)
 				tags = new ArrayList ();
-	
+
 			tags.Add (tag);
 			changes.AddTag (tag);
 		}
-	
+
 		// This on the other hand does, but is O(n) with n being the number of existing tags.
 		public void AddTag (Tag tag)
 		{
 			if (!HasTag (tag))
 				AddTagUnsafely (tag);
 		}
-	
+
 		public void AddTag (IEnumerable<Tag> taglist)
 		{
 			/*
@@ -512,8 +513,8 @@ namespace FSpot
 			 */
 			foreach (Tag tag in taglist)
 				AddTag (tag);
-		}	
-	
+		}
+
 		public void RemoveTag (Tag tag)
 		{
 			if (!HasTag (tag))
@@ -522,38 +523,38 @@ namespace FSpot
 			tags.Remove (tag);
 			changes.RemoveTag (tag);
 		}
-	
+
 		public void RemoveTag (Tag []taglist)
-		{	
+		{
 			foreach (Tag tag in taglist)
 				RemoveTag (tag);
-		}	
-	
+		}
+
 		public void RemoveCategory (IList<Tag> taglist)
 		{
 			foreach (Tag tag in taglist) {
 				Category cat = tag as Category;
-	
+
 				if (cat != null)
 					RemoveCategory (cat.Children);
-	
+
 				RemoveTag (tag);
 			}
 		}
-	
+
 		public bool HasTag (Tag tag)
 		{
 			if (tags == null)
 				return false;
-	
+
 			return tags.Contains (tag);
 		}
-	
+
 		private static IDictionary<SafeUri, string> md5_cache = new Dictionary<SafeUri, string> ();
 
 		public static void ResetMD5Cache () {
-			if (md5_cache != null)	
-				md5_cache.Clear (); 
+			if (md5_cache != null)
+				md5_cache.Clear ();
 		}
 
 		// Constructor
@@ -561,14 +562,14 @@ namespace FSpot
 			: base (id)
 		{
 			time = DateTimeUtil.ToDateTime (unix_time);
-	
+
 			description = String.Empty;
 			rating = 0;
 		}
 
 #region IComparable implementation
 
-		// IComparable 
+		// IComparable
 		public int CompareTo (object obj) {
 			if (this.GetType () == obj.GetType ()) {
 				return this.Compare((Photo)obj);
@@ -582,10 +583,10 @@ namespace FSpot
 		public int CompareTo (Photo photo)
 		{
 			int result = Id.CompareTo (photo.Id);
-			
+
 			if (result == 0)
 				return 0;
-			else 
+			else
 				return (this as IBrowsableItem).Compare (photo);
 		}
 
diff --git a/src/PhotoEventArgs.cs b/src/PhotoEventArgs.cs
index 5b0b6e8..dc40baf 100644
--- a/src/PhotoEventArgs.cs
+++ b/src/PhotoEventArgs.cs
@@ -8,6 +8,8 @@
  * This is free software. See COPYING for details.
  */
 
+using FSpot.Core;
+
 namespace FSpot
 {
 	public class PhotoEventArgs : DbItemEventArgs<Photo> {
diff --git a/src/PhotoImageView.cs b/src/PhotoImageView.cs
index e2aa723..baf2469 100644
--- a/src/PhotoImageView.cs
+++ b/src/PhotoImageView.cs
@@ -11,6 +11,7 @@
 //
 
 using System;
+using FSpot.Core;
 using FSpot.Editors;
 using FSpot.Utils;
 using FSpot.Loaders;
diff --git a/src/PhotoList.cs b/src/PhotoList.cs
index c66212f..2298230 100644
--- a/src/PhotoList.cs
+++ b/src/PhotoList.cs
@@ -9,6 +9,8 @@
 
 using System.Collections.Generic;
 
+using FSpot.Core;
+
 namespace FSpot {
 	public class PhotoList : IBrowsableCollection {
 		protected List<IBrowsableItem> list;
diff --git a/src/PhotoLoader.cs b/src/PhotoLoader.cs
index 7a51e9d..524df06 100644
--- a/src/PhotoLoader.cs
+++ b/src/PhotoLoader.cs
@@ -1,5 +1,6 @@
 using System;
 
+using FSpot.Core;
 using FSpot.Platform;
 using FSpot.Imaging;
 using Hyena;
diff --git a/src/PhotoQuery.cs b/src/PhotoQuery.cs
index 7aceaa3..10598d5 100644
--- a/src/PhotoQuery.cs
+++ b/src/PhotoQuery.cs
@@ -11,11 +11,12 @@
 using System;
 using System.Collections;
 using System.Collections.Generic;
+using FSpot.Core;
 using FSpot.Query;
 using Hyena;
 
 namespace FSpot {
-	public class PhotoQuery : FSpot.IBrowsableCollection {
+	public class PhotoQuery : IBrowsableCollection {
 		class PhotoCache
 		{
 			static int SIZE = 100;
@@ -100,8 +101,8 @@ namespace FSpot {
 		}
 
 		// IPhotoCollection Interface
-		public event FSpot.IBrowsableCollectionChangedHandler Changed;
-		public event FSpot.IBrowsableCollectionItemsChangedHandler ItemsChanged;
+		public event IBrowsableCollectionChangedHandler Changed;
+		public event IBrowsableCollectionItemsChangedHandler ItemsChanged;
 		
 		public IBrowsableItem this [int index] {
 			get { return cache.Get (index); }
diff --git a/src/PhotoStore.cs b/src/PhotoStore.cs
index 1f3c71e..64c9de2 100644
--- a/src/PhotoStore.cs
+++ b/src/PhotoStore.cs
@@ -22,6 +22,7 @@ using System.Data;
 using System;
 
 using FSpot;
+using FSpot.Core;
 using FSpot.Jobs;
 using FSpot.Query;
 using FSpot.Utils;
diff --git a/src/PhotoTagMenu.cs b/src/PhotoTagMenu.cs
index dedb060..b13e7d2 100644
--- a/src/PhotoTagMenu.cs
+++ b/src/PhotoTagMenu.cs
@@ -29,6 +29,7 @@ using System.Collections;
 using Gtk;
 
 using FSpot;
+using FSpot.Core;
 using Hyena;
 
 public class PhotoTagMenu : Menu {
diff --git a/src/Core/PhotoVersion.cs b/src/PhotoVersion.cs
similarity index 98%
rename from src/Core/PhotoVersion.cs
rename to src/PhotoVersion.cs
index 0725b93..478bef2 100644
--- a/src/Core/PhotoVersion.cs
+++ b/src/PhotoVersion.cs
@@ -6,11 +6,12 @@
  *	Larry Ewing <lewing gnome org>
  *	Stephane Delcroix <stephane delcroix org>
  *	Thomas Van Machelen <thomas vanmachelen gmail com>
- * 
+ *
  * This is free software. See COPYING for details.
  */
 
 using Hyena;
+using FSpot.Core;
 
 namespace FSpot
 {
diff --git a/src/PhotoVersionMenu.cs b/src/PhotoVersionMenu.cs
index 1c1f4f8..bf9cd11 100644
--- a/src/PhotoVersionMenu.cs
+++ b/src/PhotoVersionMenu.cs
@@ -5,6 +5,7 @@ using System;
 using System.Collections.Generic;
 
 using FSpot;
+using FSpot.Core;
 
 
 public class PhotoVersionMenu : Menu {
diff --git a/src/PhotoView.cs b/src/PhotoView.cs
index ad8edc5..e938d61 100644
--- a/src/PhotoView.cs
+++ b/src/PhotoView.cs
@@ -18,6 +18,7 @@ using System.Collections.Generic;
 using System.Xml.Serialization;
 using Mono.Unix;
 
+using FSpot.Core;
 using FSpot.Widgets;
 using FSpot.Utils;
 using Hyena;
@@ -25,7 +26,7 @@ using FSpot.UI.Dialog;
 
 namespace FSpot {
 	public class PhotoView : EventBox {
-		FSpot.Delay commit_delay; 
+		Delay commit_delay;
 	
 		private PhotoImageView photo_view;
 		private ScrolledWindow photo_view_scrolled;
@@ -61,7 +62,7 @@ namespace FSpot {
 			get { return photo_view; }
 		}
 	
-		public FSpot.BrowsablePointer Item {
+		public BrowsablePointer Item {
 			get { return photo_view.Item; }
 		}
 	
@@ -287,7 +288,7 @@ namespace FSpot {
 		{
 			this.query = query;
 	
-			commit_delay = new FSpot.Delay (1000, new GLib.IdleHandler (CommitPendingChanges));
+			commit_delay = new Delay (1000, new GLib.IdleHandler (CommitPendingChanges));
 			this.Destroyed += HandleDestroy;
 	
 			Name = "ImageContainer";
diff --git a/src/PixbufUtils.cs b/src/PixbufUtils.cs
index e6dd792..161d2f7 100644
--- a/src/PixbufUtils.cs
+++ b/src/PixbufUtils.cs
@@ -15,6 +15,7 @@ using System.Runtime.InteropServices;
 using System;
 using System.IO;
 using FSpot;
+using FSpot.Core;
 using FSpot.Utils;
 using FSpot.Imaging;
 using Hyena;
@@ -25,7 +26,7 @@ public static class PixbufUtils {
 	public static Pixbuf ErrorPixbuf {
 		get {
 			if (error_pixbuf == null)
-				error_pixbuf = GtkUtil.TryLoadIcon (FSpot.Global.IconTheme, "f-spot-question-mark", 256, (Gtk.IconLookupFlags)0);
+				error_pixbuf = GtkUtil.TryLoadIcon (FSpot.Core.Global.IconTheme, "f-spot-question-mark", 256, (Gtk.IconLookupFlags)0);
 			return error_pixbuf;
 		}
 	}
@@ -194,7 +195,7 @@ public static class PixbufUtils {
 
 	public static Pixbuf TagIconFromPixbuf (Pixbuf source)
 	{
-		return IconFromPixbuf (source, (int) FSpot.Tag.IconSize.Large);
+		return IconFromPixbuf (source, (int) Tag.IconSize.Large);
 	}
 
 	public static Pixbuf IconFromPixbuf (Pixbuf source, int size)
diff --git a/src/Preferences.cs b/src/Preferences.cs
index 795c6fe..526e835 100644
--- a/src/Preferences.cs
+++ b/src/Preferences.cs
@@ -2,6 +2,7 @@ using System.Net;
 using System;
 using System.Collections.Generic;
 using Mono.Unix;
+using FSpot.Core;
 using FSpot.Platform;
 using Hyena;
 
@@ -154,7 +155,7 @@ namespace FSpot
 			case SCREENSAVER_DELAY:
 				return 4.0;
 			case STORAGE_PATH:
-				return System.IO.Path.Combine (FSpot.Global.HomeDirectory, Catalog.GetString("Photos"));
+				return System.IO.Path.Combine (Global.HomeDirectory, Catalog.GetString("Photos"));
 			case EXPORT_EMAIL_SIZE:
 				return 3;	// medium size 640px
 			case EXPORT_EMAIL_ROTATE:
diff --git a/src/PrintOperation.cs b/src/PrintOperation.cs
index 0f8a2d0..a887f65 100644
--- a/src/PrintOperation.cs
+++ b/src/PrintOperation.cs
@@ -12,6 +12,7 @@ using System;
 using System.Runtime.InteropServices;
 using Mono.Unix;
 
+using FSpot.Core;
 using FSpot.Widgets;
 using FSpot.Imaging;
 using Hyena;
@@ -32,7 +33,7 @@ namespace FSpot
 			this.selected_photos = selected_photos;
 			CustomTabLabel = Catalog.GetString ("Image Settings");
 			NPages = selected_photos.Length;
-			DefaultPageSetup = FSpot.Global.PageSetup;
+			DefaultPageSetup = Global.PageSetup;
 		}
 
 		protected override void OnBeginPrint (Gtk.PrintContext context)
diff --git a/src/Query/HiddenTag.cs b/src/Query/HiddenTag.cs
index 0990b47..7e9b441 100644
--- a/src/Query/HiddenTag.cs
+++ b/src/Query/HiddenTag.cs
@@ -12,6 +12,7 @@
 using System;
 
 using FSpot;
+using FSpot.Core;
 
 
 namespace FSpot.Query
diff --git a/src/Query/LogicalTerm.cs b/src/Query/LogicalTerm.cs
index a3967d5..e918822 100644
--- a/src/Query/LogicalTerm.cs
+++ b/src/Query/LogicalTerm.cs
@@ -10,6 +10,7 @@
 using System;
 using System.Collections.Generic;
 using Hyena;
+using FSpot.Core;
 
 namespace FSpot.Query
 {
diff --git a/src/Query/RollSet.cs b/src/Query/RollSet.cs
index 1ac8ce3..348c741 100644
--- a/src/Query/RollSet.cs
+++ b/src/Query/RollSet.cs
@@ -8,6 +8,8 @@
  * This is frees software. See COPYING for details.
  */
 
+using FSpot.Core;
+
 namespace FSpot.Query
 {
 	public class RollSet : IQueryCondition
diff --git a/src/Query/Tests/LogicalTermTests.cs b/src/Query/Tests/LogicalTermTests.cs
index 6911b24..9c909d7 100644
--- a/src/Query/Tests/LogicalTermTests.cs
+++ b/src/Query/Tests/LogicalTermTests.cs
@@ -1,5 +1,6 @@
 #if ENABLE_TESTS
 using NUnit.Framework;
+using FSpot.Core;
 
 namespace FSpot.Query.Tests
 {
diff --git a/src/QueryWidget.cs b/src/QueryWidget.cs
index 217fc7f..3d7f83f 100644
--- a/src/QueryWidget.cs
+++ b/src/QueryWidget.cs
@@ -15,6 +15,7 @@ using Mono.Unix;
 
 using Gtk;
 
+using FSpot.Core;
 using FSpot.Utils;
 using FSpot.Query;
 using FSpot.Widgets;
diff --git a/src/RollStore.cs b/src/RollStore.cs
index 1fd64da..c753033 100644
--- a/src/RollStore.cs
+++ b/src/RollStore.cs
@@ -14,6 +14,7 @@ using System.IO;
 using System.Data;
 using System;
 
+using FSpot.Core;
 using FSpot.Utils;
 using FSpot;
 
diff --git a/src/RotateCommand.cs b/src/RotateCommand.cs
index 5824950..2643172 100644
--- a/src/RotateCommand.cs
+++ b/src/RotateCommand.cs
@@ -20,6 +20,7 @@ using FSpot.UI.Dialog;
 using Hyena;
 using Hyena.Widgets;
 using FSpot.Utils;
+using FSpot.Core;
 
 using Mono.Unix;
 
diff --git a/src/SelectionDataExtensions.cs b/src/SelectionDataExtensions.cs
index 83206cb..d7e7e15 100644
--- a/src/SelectionDataExtensions.cs
+++ b/src/SelectionDataExtensions.cs
@@ -15,6 +15,7 @@ using Gtk;
 using Gdk;
 
 using FSpot;
+using FSpot.Core;
 using FSpot.Utils;
 
 namespace FSpot
diff --git a/src/SendEmail.cs b/src/SendEmail.cs
index 40a0110..2d69c3e 100644
--- a/src/SendEmail.cs
+++ b/src/SendEmail.cs
@@ -13,6 +13,7 @@ using Gtk;
 using GLib;
 using System;
 
+using FSpot.Core;
 using FSpot.Widgets;
 using FSpot.Filters;
 using FSpot.UI.Dialog;
diff --git a/src/SingleView.cs b/src/SingleView.cs
index 0a1ec27..4f7b304 100644
--- a/src/SingleView.cs
+++ b/src/SingleView.cs
@@ -12,6 +12,7 @@ using FSpot.Utils;
 using FSpot.UI.Dialog;
 using FSpot.Widgets;
 using FSpot.Platform;
+using FSpot.Core;
 
 namespace FSpot {
 	public class SingleView {
@@ -250,7 +251,7 @@ namespace FSpot {
 				collection.MarkChanged (image_view.Item.Index, FullInvalidate.Instance);
 		}		
 
-		private void HandleSelectionChanged (FSpot.IBrowsableCollection selection) 
+		private void HandleSelectionChanged (IBrowsableCollection selection)
 		{
 			
 			if (selection.Count > 0) {
diff --git a/src/TagCommands.cs b/src/TagCommands.cs
index fb01b73..50dc73d 100644
--- a/src/TagCommands.cs
+++ b/src/TagCommands.cs
@@ -19,6 +19,7 @@ using System.Collections;
 
 using Mono.Unix;
 using FSpot;
+using FSpot.Core;
 using FSpot.Utils;
 using FSpot.UI.Dialog;
 using FSpot.Widgets;
diff --git a/src/TagPopup.cs b/src/TagPopup.cs
index 1d67cac..7e4741a 100644
--- a/src/TagPopup.cs
+++ b/src/TagPopup.cs
@@ -12,6 +12,7 @@
 using System;
 using Mono.Unix;
 using FSpot;
+using FSpot.Core;
 using FSpot.Utils;
 
 public class TagPopup {
diff --git a/src/TagQueryWidget.cs b/src/TagQueryWidget.cs
index a7ccc08..eb23a1f 100644
--- a/src/TagQueryWidget.cs
+++ b/src/TagQueryWidget.cs
@@ -5,6 +5,7 @@ using Mono.Unix;
 using Gtk;
 using Gdk;
 
+using FSpot.Core;
 using FSpot.Utils;
 using FSpot.Query;
 
diff --git a/src/TagSelectionWidget.cs b/src/TagSelectionWidget.cs
index e39c3e1..181ec4b 100644
--- a/src/TagSelectionWidget.cs
+++ b/src/TagSelectionWidget.cs
@@ -21,6 +21,7 @@ using Gtk;
 using Mono.Unix;
 
 using FSpot;
+using FSpot.Core;
 using FSpot.Utils;
 using FSpot.Widgets;
 using FSpot.UI.Dialog;
diff --git a/src/TagStore.cs b/src/TagStore.cs
index 84c9f4d..552e631 100644
--- a/src/TagStore.cs
+++ b/src/TagStore.cs
@@ -7,6 +7,7 @@ using System.IO;
 using System.Data;
 using System;
 using FSpot;
+using FSpot.Core;
 using FSpot.Jobs;
 using FSpot.Query;
 using FSpot.Utils;
diff --git a/src/Term.cs b/src/Term.cs
index 7c0174d..9f53861 100644
--- a/src/Term.cs
+++ b/src/Term.cs
@@ -12,6 +12,7 @@ using Mono.Unix;
 using Gtk;
 using Gdk;
 using Hyena;
+using FSpot.Core;
 
 namespace FSpot {
 	public abstract class Term {
diff --git a/src/ThumbnailCommand.cs b/src/ThumbnailCommand.cs
index 5352037..5846022 100644
--- a/src/ThumbnailCommand.cs
+++ b/src/ThumbnailCommand.cs
@@ -1,6 +1,7 @@
 using System;
 using Gtk;
 using FSpot;
+using FSpot.Core;
 using FSpot.Utils;
 using FSpot.UI.Dialog;
 
diff --git a/src/TimeAdaptor.cs b/src/TimeAdaptor.cs
index cdef8df..667d338 100644
--- a/src/TimeAdaptor.cs
+++ b/src/TimeAdaptor.cs
@@ -11,6 +11,7 @@
 using System;
 using System.Threading;
 using System.Collections.Generic;
+using FSpot.Core;
 using FSpot.Query;
 using Hyena;
 
@@ -101,7 +102,7 @@ namespace FSpot {
 			return new DateTime (year, month, DateTime.DaysInMonth (year, month)).AddDays (1.0).AddMilliseconds (-.1);
 		}
 		
-		public override int IndexFromPhoto (FSpot.IBrowsableItem photo) 
+		public override int IndexFromPhoto (IBrowsableItem photo)
 		{
 			if (order_ascending)
 			       return IndexFromDateAscending (photo.Time);
@@ -145,7 +146,7 @@ namespace FSpot {
 			return 12 * (endyear - year) + 12 - date.Month;
 		}
 
-		public override FSpot.IBrowsableItem PhotoFromIndex (int item)
+		public override IBrowsableItem PhotoFromIndex (int item)
 	       	{
 			DateTime start = DateFromIndex (item);
 			return query [query.LookupItem (start)];
diff --git a/src/UI.Dialog/AboutDialog.cs b/src/UI.Dialog/AboutDialog.cs
index 8458c48..d1d91fd 100644
--- a/src/UI.Dialog/AboutDialog.cs
+++ b/src/UI.Dialog/AboutDialog.cs
@@ -124,7 +124,7 @@ namespace FSpot.UI.Dialog
 			TranslatorCredits = Catalog.GetString ("translator-credits");
                 	if (System.String.Compare (TranslatorCredits, "translator-credits") == 0)
                 		TranslatorCredits = null;
-			Version = Defines.VERSION;
+			Version = FSpot.Core.Defines.VERSION;
 			Website = "http://f-spot.org";;
 			WebsiteLabel = Catalog.GetString ("F-Spot Website");
 			WrapLicense = true;
diff --git a/src/UI.Dialog/AdjustTimeDialog.cs b/src/UI.Dialog/AdjustTimeDialog.cs
index 5bdab38..ba9f214 100644
--- a/src/UI.Dialog/AdjustTimeDialog.cs
+++ b/src/UI.Dialog/AdjustTimeDialog.cs
@@ -15,6 +15,7 @@ using System;
 using Gtk;
 using System.Collections;
 using Mono.Unix;
+using FSpot.Core;
 using FSpot.Widgets;
 using Hyena;
 
diff --git a/src/UI.Dialog/EditExceptionDialog.cs b/src/UI.Dialog/EditExceptionDialog.cs
index 2ce147a..4a250d8 100644
--- a/src/UI.Dialog/EditExceptionDialog.cs
+++ b/src/UI.Dialog/EditExceptionDialog.cs
@@ -12,6 +12,7 @@ using Mono.Unix;
 using Gtk;
 using Hyena;
 using Hyena.Widgets;
+using FSpot.Core;
 
 namespace FSpot.UI.Dialog
 {
diff --git a/src/UI.Dialog/EditTagDialog.cs b/src/UI.Dialog/EditTagDialog.cs
index 06db020..10d2557 100644
--- a/src/UI.Dialog/EditTagDialog.cs
+++ b/src/UI.Dialog/EditTagDialog.cs
@@ -15,6 +15,7 @@ using System;
 using System.Collections;
 using Mono.Unix;
 using Gtk;
+using FSpot.Core;
 
 namespace FSpot.UI.Dialog
 {
diff --git a/src/UI.Dialog/EditTagIconDialog.cs b/src/UI.Dialog/EditTagIconDialog.cs
index 059d60d..dc8559e 100644
--- a/src/UI.Dialog/EditTagIconDialog.cs
+++ b/src/UI.Dialog/EditTagIconDialog.cs
@@ -14,6 +14,7 @@
 using System;
 using Mono.Unix;
 using Gtk;
+using FSpot.Core;
 using FSpot.Widgets;
 using FSpot.Utils;
 using FSpot.Imaging;
@@ -108,11 +109,11 @@ namespace FSpot.UI.Dialog
 
 			image_view.Show ();
 
-			FSpot.Delay fill_delay = new FSpot.Delay (FillIconView);
+			Delay fill_delay = new Delay (FillIconView);
 			fill_delay.Start ();
 		}
 
-		public FSpot.BrowsablePointer Item {
+		public BrowsablePointer Item {
 			get { return image_view.Item; }
 		}
 
@@ -137,7 +138,7 @@ namespace FSpot.UI.Dialog
 			get { return icon_name; }
 			set {
 				icon_name = value;	
-				PreviewPixbuf = GtkUtil.TryLoadIcon (FSpot.Global.IconTheme, value, 48, (IconLookupFlags) 0);
+				PreviewPixbuf = GtkUtil.TryLoadIcon (FSpot.Core.Global.IconTheme, value, 48, (IconLookupFlags) 0);
 			}
 			
 		}
@@ -222,9 +223,9 @@ namespace FSpot.UI.Dialog
 		public bool FillIconView ()
 		{
 			icon_store.Clear ();
-			string [] icon_list = FSpot.Global.IconTheme.ListIcons ("Emblems");
+			string [] icon_list = FSpot.Core.Global.IconTheme.ListIcons ("Emblems");
 			foreach (string item_name in icon_list)
-				icon_store.AppendValues (item_name, GtkUtil.TryLoadIcon (FSpot.Global.IconTheme, item_name, 32, (IconLookupFlags) 0));
+				icon_store.AppendValues (item_name, GtkUtil.TryLoadIcon (FSpot.Core.Global.IconTheme, item_name, 32, (IconLookupFlags) 0));
 			return false;
 		}
 	}
diff --git a/src/UI.Dialog/ImportDialog.cs b/src/UI.Dialog/ImportDialog.cs
index c97f1e2..c80b0d8 100644
--- a/src/UI.Dialog/ImportDialog.cs
+++ b/src/UI.Dialog/ImportDialog.cs
@@ -1,3 +1,4 @@
+using FSpot.Core;
 using FSpot.UI.Dialog;
 using FSpot.Widgets;
 using FSpot.Utils;
@@ -81,7 +82,7 @@ namespace FSpot.UI.Dialog
 
         void ResetPreview ()
         {
-            photo_view.Pixbuf = GtkUtil.TryLoadIcon (FSpot.Global.IconTheme, "f-spot", 128, (Gtk.IconLookupFlags)0);
+            photo_view.Pixbuf = GtkUtil.TryLoadIcon (FSpot.Core.Global.IconTheme, "f-spot", 128, (Gtk.IconLookupFlags)0);
             photo_view.ZoomFit (false);
         }
 
diff --git a/src/UI.Dialog/LastRollDialog.cs b/src/UI.Dialog/LastRollDialog.cs
index 61187f4..f5448d4 100644
--- a/src/UI.Dialog/LastRollDialog.cs
+++ b/src/UI.Dialog/LastRollDialog.cs
@@ -11,6 +11,7 @@
 
 using System;
 using Gtk;
+using FSpot.Core;
 using FSpot.Query;
 using FSpot.UI.Dialog;
 
diff --git a/src/UI.Dialog/PreferenceDialog.cs b/src/UI.Dialog/PreferenceDialog.cs
index dfaf44a..67cdfbc 100644
--- a/src/UI.Dialog/PreferenceDialog.cs
+++ b/src/UI.Dialog/PreferenceDialog.cs
@@ -40,11 +40,11 @@ namespace FSpot.UI.Dialog {
 			TransientFor = parent;
 
 			//Photos Folder
-			if (Global.PhotoUri == new SafeUri (Preferences.Get<string> (Preferences.STORAGE_PATH))) {
-				photosdir_chooser.SetCurrentFolderUri (Global.PhotoUri);
+			if (FSpot.Core.Global.PhotoUri == new SafeUri (Preferences.Get<string> (Preferences.STORAGE_PATH))) {
+				photosdir_chooser.SetCurrentFolderUri (FSpot.Core.Global.PhotoUri);
 				photosdir_chooser.CurrentFolderChanged += HandlePhotosdirChanged;
 			} else {
-				photosdir_chooser.SetCurrentFolderUri (Global.PhotoUri);
+				photosdir_chooser.SetCurrentFolderUri (FSpot.Core.Global.PhotoUri);
 				photosdir_chooser.Sensitive = false;
 			}
 
@@ -97,7 +97,7 @@ namespace FSpot.UI.Dialog {
 			themes.AppendValues (Catalog.GetString ("Standard theme"), null);
 			themes.AppendValues (null, null); //Separator
 			string gtkrc = System.IO.Path.Combine ("gtk-2.0", "gtkrc");
-			string [] search = {System.IO.Path.Combine (Global.HomeDirectory, ".themes"), "/usr/share/themes"};
+			string [] search = {System.IO.Path.Combine (FSpot.Core.Global.HomeDirectory, ".themes"), "/usr/share/themes"};
 			foreach (string path in search)
 				if (System.IO.Directory.Exists (path)) 
 					foreach (string dir in System.IO.Directory.GetDirectories (path))
@@ -212,7 +212,7 @@ namespace FSpot.UI.Dialog {
 			photosdir_chooser.CurrentFolderChanged -= HandlePhotosdirChanged;
 			Preferences.Set (Preferences.STORAGE_PATH, photosdir_chooser.Filename);
 			photosdir_chooser.CurrentFolderChanged += HandlePhotosdirChanged;
-			Global.PhotoUri = new SafeUri (photosdir_chooser.Uri, true);
+			FSpot.Core.Global.PhotoUri = new SafeUri (photosdir_chooser.Uri, true);
 		}
 
 		void HandleWritemetadataGroupChanged (object sender, System.EventArgs args)
@@ -238,7 +238,7 @@ namespace FSpot.UI.Dialog {
 				else
 					Preferences.Set (Preferences.GTK_RC, String.Empty);
 			}
-			Gtk.Rc.DefaultFiles = Global.DefaultRcFiles;
+			Gtk.Rc.DefaultFiles = FSpot.Core.Global.DefaultRcFiles;
 			Gtk.Rc.AddDefaultFile (Preferences.Get<string> (Preferences.GTK_RC));
 			Gtk.Rc.ReparseAllForSettings (Gtk.Settings.Default, true);
 		}
diff --git a/src/UI.Dialog/RepairDialog.cs b/src/UI.Dialog/RepairDialog.cs
index f3ab1f7..a84d89c 100644
--- a/src/UI.Dialog/RepairDialog.cs
+++ b/src/UI.Dialog/RepairDialog.cs
@@ -13,6 +13,8 @@ using System;
 using System.IO;
 using FSpot.Widgets;
 
+using FSpot.Core;
+
 namespace FSpot. UI.Dialog
 {
 	public class RepairDialog : BuilderDialog
diff --git a/src/UI.Dialog/TagSelectionDialog.cs b/src/UI.Dialog/TagSelectionDialog.cs
index 28969bc..823c417 100644
--- a/src/UI.Dialog/TagSelectionDialog.cs
+++ b/src/UI.Dialog/TagSelectionDialog.cs
@@ -3,6 +3,8 @@ using Gdk;
 using Gtk;
 using Glade;
 
+using FSpot.Core;
+
 namespace FSpot.UI.Dialog {
 	public class TagSelectionDialog : BuilderDialog
 	{
diff --git a/src/UI.Dialog/ThreadProgressDialog.cs b/src/UI.Dialog/ThreadProgressDialog.cs
index 55ed22a..36b165f 100644
--- a/src/UI.Dialog/ThreadProgressDialog.cs
+++ b/src/UI.Dialog/ThreadProgressDialog.cs
@@ -16,9 +16,11 @@ using System.Collections.Generic;
 
 using Gtk;
 
+using FSpot.Core;
+
 namespace FSpot.UI.Dialog {
 	public class ThreadProgressDialog : Gtk.Dialog {
-		FSpot.Delay delay;
+		Delay delay;
 
 		Gtk.ProgressBar progress_bar;
 		Gtk.Label message_label;
diff --git a/src/UriCollection.cs b/src/UriCollection.cs
index cbc81d7..0428ed1 100644
--- a/src/UriCollection.cs
+++ b/src/UriCollection.cs
@@ -20,6 +20,7 @@ using System.Xml;
 using Hyena;
 using GLib;
 
+using FSpot.Core;
 using FSpot.Imaging;
 
 namespace FSpot {
diff --git a/src/Util.cs b/src/Util.cs
index 38425b7..a7e456e 100644
--- a/src/Util.cs
+++ b/src/Util.cs
@@ -16,13 +16,14 @@ using System.Text;
 using System;
 using Hyena;
 
+using FSpot.Core;
 
 namespace FSpot.Utils
 {
 
 	public class UriList : List<SafeUri> {
-		public UriList (FSpot.IBrowsableItem [] photos) {
-			foreach (FSpot.IBrowsableItem p in photos) {
+		public UriList (IBrowsableItem [] photos) {
+			foreach (IBrowsableItem p in photos) {
 				SafeUri uri;
 				try {
 					uri = p.DefaultVersion.Uri;
@@ -106,7 +107,7 @@ namespace FSpot.Utils
 			AddUnknown (path);
 		}*/
 	
-		public void Add (FSpot.IBrowsableItem item)
+		public void Add (IBrowsableItem item)
 		{
 			Add (item.DefaultVersion.Uri);
 		}
diff --git a/src/Widgets/CustomPrintWidget.cs b/src/Widgets/CustomPrintWidget.cs
index ec44c22..8289513 100644
--- a/src/Widgets/CustomPrintWidget.cs
+++ b/src/Widgets/CustomPrintWidget.cs
@@ -119,7 +119,7 @@ namespace FSpot.Widgets
 			Frame page_frame = new Frame (Catalog.GetString ("Page Setup"));
 			VBox page_box = new VBox ();
 			Label current_settings = new Label ();
-			if (FSpot.Global.PageSetup != null)
+			if (FSpot.Core.Global.PageSetup != null)
 				current_settings.Text = String.Format (Catalog.GetString ("Paper Size: {0} x {1} mm"), 
 								Math.Round (print_operation.DefaultPageSetup.GetPaperWidth (Unit.Mm), 1), 
 								Math.Round (print_operation.DefaultPageSetup.GetPaperHeight (Unit.Mm), 1));
diff --git a/src/Widgets/EditorPage.cs b/src/Widgets/EditorPage.cs
index 8f0ee94..eedebf0 100644
--- a/src/Widgets/EditorPage.cs
+++ b/src/Widgets/EditorPage.cs
@@ -12,6 +12,7 @@ using FSpot.Extensions;
 using FSpot.Editors;
 using FSpot.UI.Dialog;
 using FSpot.Utils;
+using FSpot.Core;
 
 using Gtk;
 
@@ -116,7 +117,7 @@ namespace FSpot.Widgets {
 		{
 			Button button = new Button (editor.Label);
 			if (editor.IconName != null)
-				button.Image = new Image (GtkUtil.TryLoadIcon (FSpot.Global.IconTheme, editor.IconName, 22, (Gtk.IconLookupFlags)0));
+				button.Image = new Image (GtkUtil.TryLoadIcon (FSpot.Core.Global.IconTheme, editor.IconName, 22, (Gtk.IconLookupFlags)0));
 			button.Clicked += delegate (object o, EventArgs e) { ChooseEditor (editor); };
 			button.Show ();
 			buttons.Add (button);
@@ -261,7 +262,7 @@ namespace FSpot.Widgets {
 			tool_buttons.Add (cancel);
 
 			Button apply = new Button (editor.ApplyLabel);
-			apply.Image = new Image (GtkUtil.TryLoadIcon (FSpot.Global.IconTheme, editor.IconName, 22, (Gtk.IconLookupFlags)0));
+			apply.Image = new Image (GtkUtil.TryLoadIcon (FSpot.Core.Global.IconTheme, editor.IconName, 22, (Gtk.IconLookupFlags)0));
 			apply.Clicked += delegate { Apply (editor); };
 			tool_buttons.Add (apply);
 
diff --git a/src/Widgets/Filmstrip.cs b/src/Widgets/Filmstrip.cs
index ac9b42f..c09a7b4 100644
--- a/src/Widgets/Filmstrip.cs
+++ b/src/Widgets/Filmstrip.cs
@@ -17,6 +17,7 @@ using System.Collections;
 using Gtk;
 using Gdk;
 
+using FSpot.Core;
 using FSpot.Utils;
 using FSpot.Platform;
 using FSpot.Bling;
@@ -188,14 +189,14 @@ namespace FSpot.Widgets
 			}
 		}
 
-		FSpot.BrowsablePointer selection;
+		BrowsablePointer selection;
 		DisposableCache<SafeUri, Pixbuf> thumb_cache;
 
-		public Filmstrip (FSpot.BrowsablePointer selection) : this (selection, true)
+		public Filmstrip (BrowsablePointer selection) : this (selection, true)
 		{
 		}
 
-		public Filmstrip (FSpot.BrowsablePointer selection, bool squared_thumbs) : base ()
+		public Filmstrip (BrowsablePointer selection, bool squared_thumbs) : base ()
 		{
 			CanFocus = true;
 			this.selection = selection;
@@ -523,7 +524,7 @@ namespace FSpot.Widgets
                 var pixbuf = XdgThumbnailSpec.LoadThumbnail (uri, ThumbnailSize.Large, null);
                 if (pixbuf == null) {
 					ThumbnailLoader.Default.Request (uri, ThumbnailSize.Large, 0);
-                    current = FSpot.Global.IconTheme.LoadIcon ("gtk-missing-image", ThumbSize, (Gtk.IconLookupFlags)0);
+                    current = FSpot.Core.Global.IconTheme.LoadIcon ("gtk-missing-image", ThumbSize, (Gtk.IconLookupFlags)0);
                 } else {
 					if (SquaredThumbs) {
                         current = PixbufUtils.IconFromPixbuf (pixbuf, ThumbSize);
diff --git a/src/Widgets/FindBar.cs b/src/Widgets/FindBar.cs
index e469f2a..7694953 100644
--- a/src/Widgets/FindBar.cs
+++ b/src/Widgets/FindBar.cs
@@ -16,6 +16,7 @@ using Gtk;
 using Gdk;
 using Mono.Unix;
 
+using FSpot.Core;
 using FSpot.Query;
 using Hyena;
 
diff --git a/src/Widgets/FolderTreeModel.cs b/src/Widgets/FolderTreeModel.cs
index c3e0929..70229f5 100644
--- a/src/Widgets/FolderTreeModel.cs
+++ b/src/Widgets/FolderTreeModel.cs
@@ -15,6 +15,7 @@ using Gtk;
 using GLib;
 
 using FSpot;
+using FSpot.Core;
 using Hyena;
 
 using Mono.Unix;
diff --git a/src/Widgets/IconView.cs b/src/Widgets/IconView.cs
index 5f3ba09..8b1f0d5 100644
--- a/src/Widgets/IconView.cs
+++ b/src/Widgets/IconView.cs
@@ -15,6 +15,7 @@ using System;
 using System.Reflection;
 using System.Collections;
 using System.IO;
+using FSpot.Core;
 using FSpot.Utils;
 using FSpot.Platform;
 
@@ -240,7 +241,7 @@ namespace FSpot.Widgets
 			//FSpot.Global.ModifyColors (this);
 		}
 
-		public IconView (FSpot.IBrowsableCollection collection) : this ()
+		public IconView (IBrowsableCollection collection) : this ()
 		{
 			this.collection = collection;
 			this.selection = new SelectionCollection (collection);
@@ -252,7 +253,7 @@ namespace FSpot.Widgets
 			selection.DetailedChanged += HandleSelectionChanged;
 		}
 
-		private void HandleSelectionChanged (FSpot.IBrowsableCollection collection, int [] ids)
+		private void HandleSelectionChanged (IBrowsableCollection collection, int [] ids)
 		{
 			if (ids == null)
 				QueueDraw ();
@@ -261,7 +262,7 @@ namespace FSpot.Widgets
 					InvalidateCell (id);
 		}
 
-		private void HandleChanged (FSpot.IBrowsableCollection sender)
+		private void HandleChanged (IBrowsableCollection sender)
 		{
 			// FIXME we should probably try to merge the selection forward
 			// but it needs some thought to be efficient.
@@ -269,7 +270,7 @@ namespace FSpot.Widgets
 			QueueResize ();
 		}
 
-		private void HandleItemsChanged (FSpot.IBrowsableCollection sender, BrowsableEventArgs args)
+		private void HandleItemsChanged (IBrowsableCollection sender, BrowsableEventArgs args)
 		{
 			foreach (int item in args.Items) {
 				if (args.Changes.DataChanged)
@@ -282,8 +283,8 @@ namespace FSpot.Widgets
 		// IPhotoSelection
 		//
 
-		protected FSpot.IBrowsableCollection collection;
-		public FSpot.IBrowsableCollection Collection {
+		protected IBrowsableCollection collection;
+		public IBrowsableCollection Collection {
 			get {
 				return collection;
 			}
@@ -634,7 +635,7 @@ namespace FSpot.Widgets
 		// Updating.
 		public void UpdateThumbnail (int thumbnail_num)
 		{
-			FSpot.IBrowsableItem photo = collection [thumbnail_num];
+			IBrowsableItem photo = collection [thumbnail_num];
 			cache.Remove (photo.DefaultVersion.Uri);
 			InvalidateCell (thumbnail_num);
 		}
@@ -848,7 +849,7 @@ namespace FSpot.Widgets
 			if (!bounds.Intersect (area, out area))
 				return;
 
-			FSpot.IBrowsableItem photo = collection [thumbnail_num];
+			IBrowsableItem photo = collection [thumbnail_num];
 
 			FSpot.PixbufCache.CacheEntry entry = cache.Lookup (photo.DefaultVersion.Uri);
 			if (entry == null)
@@ -1256,7 +1257,7 @@ namespace FSpot.Widgets
 
 			int i;
 
-			FSpot.IBrowsableItem photo;
+			IBrowsableItem photo;
 			FSpot.PixbufCache.CacheEntry entry;
 
 			// Preload the cache with images aroud the expose area
diff --git a/src/Widgets/InfoBox.cs b/src/Widgets/InfoBox.cs
index 4c645e2..8f63ef7 100644
--- a/src/Widgets/InfoBox.cs
+++ b/src/Widgets/InfoBox.cs
@@ -16,6 +16,7 @@
 using Gtk;
 using System;
 using System.IO;
+using FSpot.Core;
 using FSpot.Imaging;
 using Mono.Unix;
 using FSpot.Utils;
diff --git a/src/Widgets/MetadataDisplay.cs b/src/Widgets/MetadataDisplay.cs
index 7362560..5f53d8f 100644
--- a/src/Widgets/MetadataDisplay.cs
+++ b/src/Widgets/MetadataDisplay.cs
@@ -16,6 +16,7 @@ using Gtk;
 
 using Mono.Unix;
 
+using FSpot.Core;
 using FSpot.Extensions;
 using FSpot.Imaging;
 
diff --git a/src/Widgets/PreviewPopup.cs b/src/Widgets/PreviewPopup.cs
index dba727b..165e223 100644
--- a/src/Widgets/PreviewPopup.cs
+++ b/src/Widgets/PreviewPopup.cs
@@ -11,6 +11,7 @@
 using System;
 using Cairo;
 using Gdk;
+using FSpot.Core;
 using FSpot.Widgets;
 using FSpot.Utils;
 
@@ -103,7 +104,7 @@ namespace FSpot {
 
 		private void UpdateImage ()
 		{
-			FSpot.IBrowsableItem item = view.Collection [Item];
+			IBrowsableItem item = view.Collection [Item];
 			
 			string orig_path = item.DefaultVersion.Uri.LocalPath;
 
diff --git a/src/Widgets/QueryView.cs b/src/Widgets/QueryView.cs
index 6aaa08a..84ab9b9 100644
--- a/src/Widgets/QueryView.cs
+++ b/src/Widgets/QueryView.cs
@@ -4,12 +4,14 @@
 // Copyright (C) 2004 Novell, Inc.
 //
 
+using FSpot.Core;
+
 namespace FSpot.Widgets
 {
 	public class QueryView : IconView {
 		public QueryView (System.IntPtr raw) : base (raw) {}
 	
-		public QueryView (FSpot.IBrowsableCollection query) : base (query) {}
+		public QueryView (IBrowsableCollection query) : base (query) {}
 	
 		protected override bool OnPopupMenu ()
 		{
diff --git a/src/Widgets/Rating.cs b/src/Widgets/Rating.cs
index 3030d14..7698db5 100644
--- a/src/Widgets/Rating.cs
+++ b/src/Widgets/Rating.cs
@@ -274,7 +274,7 @@ namespace FSpot.Widgets
 		public virtual Pixbuf IconRated {
 			get {
 				if (icon_rated == null)
-					icon_rated = GtkUtil.TryLoadIcon (FSpot.Global.IconTheme, "rating-rated", 16, (Gtk.IconLookupFlags)0);
+					icon_rated = GtkUtil.TryLoadIcon (FSpot.Core.Global.IconTheme, "rating-rated", 16, (Gtk.IconLookupFlags)0);
 				
 				return icon_rated;
 			}
@@ -285,7 +285,7 @@ namespace FSpot.Widgets
 		public virtual Pixbuf IconNotRated {
 			get {
 				if (icon_blank == null)
-					icon_blank = GtkUtil.TryLoadIcon (FSpot.Global.IconTheme, "rating-blank", 16, (Gtk.IconLookupFlags)0);
+					icon_blank = GtkUtil.TryLoadIcon (FSpot.Core.Global.IconTheme, "rating-blank", 16, (Gtk.IconLookupFlags)0);
 				
 				return icon_blank;
 			}
@@ -338,7 +338,7 @@ namespace FSpot.Widgets
 		public override Pixbuf IconRated {
 			get {
 				if (icon_rated_small == null)
-					icon_rated_small = GtkUtil.TryLoadIcon (FSpot.Global.IconTheme, "rating-rated", 16, (Gtk.IconLookupFlags)0);
+					icon_rated_small = GtkUtil.TryLoadIcon (FSpot.Core.Global.IconTheme, "rating-rated", 16, (Gtk.IconLookupFlags)0);
 				
 				return icon_rated_small;
 			}
@@ -347,7 +347,7 @@ namespace FSpot.Widgets
 		public override Pixbuf IconNotRated {
 			get {
 				if (icon_blank_small == null)
-					icon_blank_small = GtkUtil.TryLoadIcon (FSpot.Global.IconTheme, "rating-blank", 16, (Gtk.IconLookupFlags)0);
+					icon_blank_small = GtkUtil.TryLoadIcon (FSpot.Core.Global.IconTheme, "rating-blank", 16, (Gtk.IconLookupFlags)0);
 				
 				return icon_blank_small;
 			}
diff --git a/src/Widgets/ScalingIconView.cs b/src/Widgets/ScalingIconView.cs
index f9501ff..856c268 100644
--- a/src/Widgets/ScalingIconView.cs
+++ b/src/Widgets/ScalingIconView.cs
@@ -8,6 +8,7 @@
  */
 
 using System;
+using FSpot.Core;
 
 namespace FSpot.Widgets {
 	public class ScalingIconView : IconView {
diff --git a/src/Widgets/ScrolledView.cs b/src/Widgets/ScrolledView.cs
index 27900d2..71c38ea 100644
--- a/src/Widgets/ScrolledView.cs
+++ b/src/Widgets/ScrolledView.cs
@@ -1,5 +1,6 @@
 using System;
 using Gtk;
+using FSpot.Core;
 
 namespace FSpot.Widgets {
 	public class ScrolledView : Fixed {
diff --git a/src/Widgets/Sidebar.cs b/src/Widgets/Sidebar.cs
index 067ad21..0ce6f5e 100644
--- a/src/Widgets/Sidebar.cs
+++ b/src/Widgets/Sidebar.cs
@@ -9,6 +9,7 @@
  * This is free software. See COPYING for details.
  */
 
+using FSpot.Core;
 using FSpot.Extensions;
 using FSpot.Utils;
 using Gtk;
diff --git a/src/Widgets/SlideShow.cs b/src/Widgets/SlideShow.cs
index 1290a21..b8efce7 100644
--- a/src/Widgets/SlideShow.cs
+++ b/src/Widgets/SlideShow.cs
@@ -13,6 +13,7 @@ using System.Collections.Generic;
 using Gtk;
 using Gdk;
 using Mono.Addins;
+using FSpot.Core;
 using FSpot.Bling;
 using FSpot.Extensions;
 using FSpot.Imaging;
diff --git a/src/Widgets/TagEntry.cs b/src/Widgets/TagEntry.cs
index c4c67b1..019fef9 100644
--- a/src/Widgets/TagEntry.cs
+++ b/src/Widgets/TagEntry.cs
@@ -11,6 +11,7 @@
 
 using System.Text;
 using System.Collections;
+using FSpot.Core;
 
 namespace FSpot.Widgets {
 
diff --git a/src/Widgets/TagMenu.cs b/src/Widgets/TagMenu.cs
index c1ea1c4..0690108 100644
--- a/src/Widgets/TagMenu.cs
+++ b/src/Widgets/TagMenu.cs
@@ -6,6 +6,7 @@ using System;
 using FSpot;
 using FSpot.Utils;
 using Hyena;
+using FSpot.Core;
 
 public class TagMenu : Menu {
 	private TagStore tag_store;
diff --git a/src/Widgets/TagView.cs b/src/Widgets/TagView.cs
index 199b6d5..fe72844 100644
--- a/src/Widgets/TagView.cs
+++ b/src/Widgets/TagView.cs
@@ -11,6 +11,7 @@
 using System;
 using Gtk;
 using Gdk;
+using FSpot.Core;
 
 namespace FSpot.Widgets {
 public class TagView : EventBox {
diff --git a/src/Widgets/TrayView.cs b/src/Widgets/TrayView.cs
index 4b2523d..66a32b1 100644
--- a/src/Widgets/TrayView.cs
+++ b/src/Widgets/TrayView.cs
@@ -9,12 +9,14 @@
  * This is free software. See COPYING for details.
  */
 
+using FSpot.Core;
+
 namespace FSpot.Widgets
 {
 	public class TrayView : IconView {
 		public TrayView (System.IntPtr raw) : base (raw) {}
 	
-		public TrayView (FSpot.IBrowsableCollection query) : base (query) 
+		public TrayView (IBrowsableCollection query) : base (query)
 		{
 			DisplayDates = false;
 			DisplayTags = false;
diff --git a/src/main.cs b/src/main.cs
index 58efd1f..cb46988 100644
--- a/src/main.cs
+++ b/src/main.cs
@@ -9,6 +9,7 @@ using System.Collections.Generic;
 using Mono.Unix;
 using Mono.Addins;
 using Mono.Addins.Setup;
+using FSpot.Core;
 using FSpot.Utils;
 using FSpot.UI.Dialog;
 using FSpot.Extensions;
@@ -23,7 +24,7 @@ namespace FSpot
 	{
 		private static void ShowVersion ()
 		{
-			Console.WriteLine ("F-Spot {0}", FSpot.Defines.VERSION);
+			Console.WriteLine ("F-Spot {0}", Defines.VERSION);
 			Console.WriteLine ("http://f-spot.org";);
 			Console.WriteLine ("\t(c)2003-2009, Novell Inc");
 			Console.WriteLine ("\t(c)2009 Stephane Delcroix");
@@ -155,7 +156,7 @@ namespace FSpot
 			GLib.GType.Init ();
 			Catalog.Init ("f-spot", Defines.LOCALE_DIR);
 			
-			FSpot.Global.PhotoUri = new SafeUri (Preferences.Get<string> (Preferences.STORAGE_PATH));
+			FSpot.Core.Global.PhotoUri = new SafeUri (Preferences.Get<string> (Preferences.STORAGE_PATH));
 
 			ApplicationContext.CommandLine = new CommandLineParser (args, 0);
 
@@ -189,7 +190,7 @@ namespace FSpot
 
 				if (!string.IsNullOrEmpty (dir))
 				{
-					FSpot.Global.BaseDirectory = dir;
+					FSpot.Core.Global.BaseDirectory = dir;
 					Log.InformationFormat ("BaseDirectory is now {0}", dir);
 				} else {
 					Log.Error ("f-spot: -basedir option takes one argument");
@@ -202,7 +203,7 @@ namespace FSpot
 
 				if (!string.IsNullOrEmpty (dir))
 				{
-					FSpot.Global.PhotoUri = new SafeUri (dir);
+					FSpot.Core.Global.PhotoUri = new SafeUri (dir);
 					Log.InformationFormat ("PhotoDirectory is now {0}", dir);
 				} else {
 					Log.Error ("f-spot: -photodir option takes one argument");
@@ -252,20 +253,20 @@ namespace FSpot
 			Platform.WebProxy.Init ();
 
 			if (File.Exists (Preferences.Get<string> (Preferences.GTK_RC))) {
-				if (File.Exists (Path.Combine (Global.BaseDirectory, "gtkrc")))
-					Gtk.Rc.AddDefaultFile (Path.Combine (Global.BaseDirectory, "gtkrc"));
+				if (File.Exists (Path.Combine (FSpot.Core.Global.BaseDirectory, "gtkrc")))
+					Gtk.Rc.AddDefaultFile (Path.Combine (FSpot.Core.Global.BaseDirectory, "gtkrc"));
 
-				Global.DefaultRcFiles = Gtk.Rc.DefaultFiles;
+				FSpot.Core.Global.DefaultRcFiles = Gtk.Rc.DefaultFiles;
 				Gtk.Rc.AddDefaultFile (Preferences.Get<string> (Preferences.GTK_RC));
 				Gtk.Rc.ReparseAllForSettings (Gtk.Settings.Default, true);
 			}
 
 			try {
 				Gtk.Window.DefaultIconList = new Gdk.Pixbuf [] {
-					GtkUtil.TryLoadIcon (FSpot.Global.IconTheme, "f-spot", 16, (Gtk.IconLookupFlags)0),
-					GtkUtil.TryLoadIcon (FSpot.Global.IconTheme, "f-spot", 22, (Gtk.IconLookupFlags)0),
-					GtkUtil.TryLoadIcon (FSpot.Global.IconTheme, "f-spot", 32, (Gtk.IconLookupFlags)0),
-					GtkUtil.TryLoadIcon (FSpot.Global.IconTheme, "f-spot", 48, (Gtk.IconLookupFlags)0)
+					GtkUtil.TryLoadIcon (FSpot.Core.Global.IconTheme, "f-spot", 16, (Gtk.IconLookupFlags)0),
+					GtkUtil.TryLoadIcon (FSpot.Core.Global.IconTheme, "f-spot", 22, (Gtk.IconLookupFlags)0),
+					GtkUtil.TryLoadIcon (FSpot.Core.Global.IconTheme, "f-spot", 32, (Gtk.IconLookupFlags)0),
+					GtkUtil.TryLoadIcon (FSpot.Core.Global.IconTheme, "f-spot", 48, (Gtk.IconLookupFlags)0)
 				};
 			} catch {}
 
@@ -296,14 +297,14 @@ namespace FSpot
 
 		static void UpdatePlugins ()
 		{
-			AddinManager.Initialize (FSpot.Global.BaseDirectory);
+			AddinManager.Initialize (FSpot.Core.Global.BaseDirectory);
 			AddinManager.Registry.Update (null);
 		}
 
 		static void ResetPluginDb ()
 		{
 			// Nuke addin-db
-			var directory = GLib.FileFactory.NewForUri (new SafeUri (FSpot.Global.BaseDirectory));
+			var directory = GLib.FileFactory.NewForUri (new SafeUri (FSpot.Core.Global.BaseDirectory));
 			var list = directory.EnumerateChildren ("standard::name", GLib.FileQueryInfoFlags.None, null);
 			foreach (GLib.FileInfo info in list) {
 				if (info.Name.StartsWith ("addin-db-")) {



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]