<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array">
    <added>
      <filename>src/NewsKit.Parsing.cs</filename>
    </added>
    <added>
      <filename>src/Summa.Core.StringCatalog.cs</filename>
    </added>
    <added>
      <filename>src/Summa.Data.Feeds.cs</filename>
    </added>
  </added>
  <modified type="array">
    <modified>
      <diff>@@ -23,7 +23,7 @@ SUMMA_CSDISTFILES = \
     Summa.Data.Search.cs \
     NewsKit.AtomParser.cs \
     Summa.Gui.AboutDialog.cs \
-    NewsKit.Core.cs \
+    NewsKit.Parsing.cs \
     Summa.Gui.Actions.cs \
     NewsKit.Exceptions.cs \
     Summa.Gui.AddFeedDialog.cs \
@@ -70,12 +70,13 @@ SUMMA_CSDISTFILES = \
     Summa.Gui.WebKitView.cs \
     Summa.Core.Updater.cs \
     Summa.Net.ConnectionState.cs \
-    Summa.Data.Core.cs \
+    Summa.Data.Feeds.cs \
     Summa.Net.INetworkManager.cs \
     Summa.Data.Feed.cs \
     Summa.Net.NetworkManager.cs \
     Notifications.Global.cs \
-    Notifications.Notification.cs
+    Notifications.Notification.cs \
+    Summa.Core.StringCatalog.cs
 
 summalibdir = $(prefix)/lib/summa
 all:</diff>
      <filename>src/Makefile.am</filename>
    </modified>
    <modified>
      <diff>@@ -28,8 +28,10 @@ using System.Collections;
 using System.Xml;
 using System.Text;
 
+using NewsKit;
+
 namespace NewsKit {
-    public class AtomParser : NewsKit.IFeedParser {
+    public class AtomParser : IFeedParser {
         private XmlDocument document;
         private XmlNamespaceManager mgr;
         
@@ -39,7 +41,7 @@ namespace NewsKit {
                 try {
                     return name;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -51,7 +53,7 @@ namespace NewsKit {
                 try {
                     return subtitle;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -63,7 +65,7 @@ namespace NewsKit {
                 try {
                     return uri;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -75,7 +77,7 @@ namespace NewsKit {
                 try {
                     return author;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -87,7 +89,7 @@ namespace NewsKit {
                 try {
                     return image;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -99,7 +101,7 @@ namespace NewsKit {
                 try {
                     return license;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -111,7 +113,7 @@ namespace NewsKit {
                 try {
                     return etag;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -123,7 +125,7 @@ namespace NewsKit {
                 try {
                     return modified;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -135,7 +137,7 @@ namespace NewsKit {
                 try {
                     return favicon;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -157,7 +159,7 @@ namespace NewsKit {
                 try {
                     return items;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return new ArrayList();
                 }
             }
@@ -165,30 +167,19 @@ namespace NewsKit {
         }
         
         public AtomParser(string uri, string xml) {
-            this.uri = uri;
-            this.document = new XmlDocument();
+            Uri = uri;
+            document = new XmlDocument();
             xml = xml.TrimStart();
             
             document.LoadXml(xml);
             
             mgr = new XmlNamespaceManager(document.NameTable);
             if ( xml.Contains(&quot;xmlns=\&quot;http://purl.org/atom/ns#\&quot;&quot;) ) {
-                this.mgr.AddNamespace(&quot;atom&quot;, &quot;http://purl.org/atom/ns#&quot;);
+                mgr.AddNamespace(&quot;atom&quot;, &quot;http://purl.org/atom/ns#&quot;);
             } else {
-                this.mgr.AddNamespace(&quot;atom&quot;, &quot;http://www.w3.org/2005/Atom&quot;);
+                mgr.AddNamespace(&quot;atom&quot;, &quot;http://www.w3.org/2005/Atom&quot;);
             }
-            Parse();
-        }
-        
-        public AtomParser(string uri, XmlDocument doc) {
-            this.uri = uri;
-            this.document = doc;
-            this.mgr = new XmlNamespaceManager(document.NameTable);
-			this.mgr.AddNamespace(&quot;atom&quot;, &quot;http://www.w3.org/2005/Atom&quot;);
-            Parse();
-        }
-        
-        private void Parse() {
+            
             Name = GetXmlNodeText(document, &quot;/atom:feed/atom:title&quot;);
             Subtitle = GetXmlNodeText(document, &quot;/atom:feed/atom:subtitle&quot;);
             License = GetXmlNodeText(document, &quot;/atom:feed/atom:license&quot;);
@@ -203,17 +194,16 @@ namespace NewsKit {
             }
         }
         
-        private NewsKit.Item ParseItem(XmlNode node) {
-            NewsKit.Item item = new NewsKit.Item();
+        private Item ParseItem(XmlNode node) {
+            Item item = new Item();
             
             item.Title = GetXmlNodeText(node, &quot;atom:title&quot;);
             item.Author = GetXmlNodeText(node, &quot;atom:author/atom:name&quot;);
             XmlNodeList linknodes = node.SelectNodes(&quot;atom:link&quot;, mgr);
             ProcessXmlNodeLinks(linknodes, item);
-            //item.Uri = GetXmlNodeUrl(node, &quot;atom:link&quot;);
-            item.Contents = GetXmlNodeContent(node);
+            item.Contents = GetXmlNodeText(node, &quot;atom:content&quot;);
             if ( item.Contents == null ) {
-                item.Contents = GetXmlNodeSummary(node);
+                item.Contents = GetXmlNodeText(node, &quot;atom:summary&quot;);
             }
             item.Date = GetRfc822DateTime(node, &quot;atom:updated&quot;).ToString();
             item.LastUpdated = &quot;&quot;;
@@ -227,21 +217,13 @@ namespace NewsKit {
             return (n == null) ? null : n.InnerText.Trim();
         }
         
-        public string GetXmlNodeContent(XmlNode node) {
-            XmlNode n = node.SelectSingleNode(&quot;atom:content&quot;, mgr);
-            return (n == null) ? null : n.InnerXml.Trim().Replace(&quot;\n&quot;, &quot;&lt;br/&gt;\n&quot;);
-        }
-        public string GetXmlNodeSummary(XmlNode node) {
-            XmlNode n = node.SelectSingleNode(&quot;atom:summary&quot;, mgr);
-            return (n == null) ? null : n.InnerXml.Trim().Replace(&quot;\n&quot;, &quot;&lt;br/&gt;\n&quot;);
-        }
-        
-        public void ProcessXmlNodeLinks(XmlNodeList node, NewsKit.Item item) {
+        public void ProcessXmlNodeLinks(XmlNodeList node, Item item) {
             string possible_self = null;
             
             foreach ( XmlNode n in node ) {
                 bool has_rel = false;
                 bool is_self = false;
+                bool is_alternate = false;
                 bool is_enclosure = false;
                 foreach ( XmlAttribute val in n.Attributes ) {
                     if ( (string)val.Name == &quot;rel&quot; ) {
@@ -250,6 +232,8 @@ namespace NewsKit {
                             is_self = true;
                         } else if ( (string)val.Value == &quot;enclosure&quot; ) {
                             is_enclosure = true;
+                        } else if ( (string)val.Value == &quot;alternate&quot; ) {
+                            is_alternate = true;
                         }
                     }
                     
@@ -259,6 +243,10 @@ namespace NewsKit {
                                 item.Uri = (string)val.Value;
                             } else if ( is_enclosure ){
                                 item.EncUri = (string)val.Value;
+                            } if ( is_alternate ) {
+                                if ( String.IsNullOrEmpty(item.Uri) ) {
+                                    item.Uri = (string)val.Value;
+                                }
                             }
                         } else {
                             possible_self = (string)val.Value;</diff>
      <filename>src/NewsKit.AtomParser.cs</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,7 @@
 using System;
 
+using NewsKit;
+
 namespace NewsKit.Exceptions {
 // for failures to download
     [Serializable()]</diff>
      <filename>src/NewsKit.Exceptions.cs</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,7 @@
 using System;
 
+using NewsKit;
+
 namespace NewsKit {
     internal static class Globals {
         // you want to customize this class to your program, so that you can
@@ -41,7 +43,7 @@ namespace NewsKit {
         }
         
         public static void Exception(Exception e) {
-            Summa.Core.Log.Exception(e);
+            //Summa.Core.Log.Exception(e);
         }
     }
 }</diff>
      <filename>src/NewsKit.Globals.cs</filename>
    </modified>
    <modified>
      <diff>@@ -1,6 +1,8 @@
 using System;
 using System.Collections;
 
+using NewsKit;
+
 namespace NewsKit {
     public interface IFeedParser {
         string Name {get; set;}</diff>
      <filename>src/NewsKit.IFeedParser.cs</filename>
    </modified>
    <modified>
      <diff>@@ -1,5 +1,7 @@
 using System;
 
+using NewsKit;
+
 namespace NewsKit {
     public class Item {
         public string Title;</diff>
      <filename>src/NewsKit.Item.cs</filename>
    </modified>
    <modified>
      <diff>@@ -27,6 +27,8 @@ using System;
 using System.Xml;
 using System.Collections;
 
+using NewsKit;
+
 namespace NewsKit {
     public class OpmlParser {
         public ArrayList Uris;</diff>
      <filename>src/NewsKit.OpmlParser.cs</filename>
    </modified>
    <modified>
      <diff>@@ -28,8 +28,10 @@ using System.Collections;
 using System.Xml;
 using System.Text;
 
+using NewsKit;
+
 namespace NewsKit {
-    public class RdfParser : NewsKit.IFeedParser {
+    public class RdfParser : IFeedParser {
         private XmlDocument document;
         private XmlNamespaceManager mgr;
         
@@ -39,7 +41,7 @@ namespace NewsKit {
                 try {
                     return name;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -51,7 +53,7 @@ namespace NewsKit {
                 try {
                     return subtitle;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -63,7 +65,7 @@ namespace NewsKit {
                 try {
                     return uri;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -75,7 +77,7 @@ namespace NewsKit {
                 try {
                     return author;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -87,7 +89,7 @@ namespace NewsKit {
                 try {
                     return image;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -99,7 +101,7 @@ namespace NewsKit {
                 try {
                     return license;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -111,7 +113,7 @@ namespace NewsKit {
                 try {
                     return etag;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -123,7 +125,7 @@ namespace NewsKit {
                 try {
                     return modified;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -135,7 +137,7 @@ namespace NewsKit {
                 try {
                     return favicon;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -157,7 +159,7 @@ namespace NewsKit {
                 try {
                     return items;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return new ArrayList();
                 }
             }
@@ -171,7 +173,7 @@ namespace NewsKit {
             try {
                 document.LoadXml(xml);
             } catch (XmlException e) {
-                NewsKit.Globals.Exception(e);
+                Globals.Exception(e);
                 bool have_stripped_control = false;
                 StringBuilder sb = new StringBuilder ();
 
@@ -198,18 +200,8 @@ namespace NewsKit {
             mgr = new XmlNamespaceManager(document.NameTable);
             mgr.AddNamespace(&quot;rss10&quot;, &quot;http://purl.org/rss/1.0/&quot;);
             mgr.AddNamespace(&quot;content&quot;, &quot;http://purl.org/rss/1.0/modules/content/&quot;);
-            Parse();
-        }
-        
-        public RdfParser(string uri, XmlDocument doc) {
-            this.uri = uri;
-            this.document = doc;
-            this.mgr.AddNamespace(&quot;rss10&quot;, &quot;http://purl.org/rss/1.0/&quot;);
-            this.mgr.AddNamespace(&quot;content&quot;, &quot;http://purl.org/rss/1.0/modules/content/&quot;);
-            Parse();
-        }
-        
-        private void Parse() {
+            mgr.AddNamespace(&quot;dc&quot;, &quot;http://purl.org/dc/elements/1.1/&quot;);
+            
             XmlNodeList channodes = document.SelectNodes(&quot;//rss10:channel&quot;, mgr);
             foreach ( XmlNode node in channodes ) {
                 Name = GetXmlNodeText(node, &quot;rss10:title&quot;);
@@ -224,25 +216,25 @@ namespace NewsKit {
             }
         }
         
-        private NewsKit.Item ParseItem(XmlNode node) {
-            NewsKit.Item item = new NewsKit.Item();
+        private Item ParseItem(XmlNode node) {
+            Item item = new Item();
             
             item.Title = GetXmlNodeText(node, &quot;rss10:title&quot;);
             item.Author = GetXmlNodeText(node, &quot;rss10:author&quot;);
             item.Uri = GetXmlNodeText(node, &quot;rss10:link&quot;);
             item.Contents = GetXmlNodeText(node, &quot;rss10:description&quot;);
+            Console.WriteLine(item.Contents);
             try {
                 if ( item.Contents.Length &lt; GetXmlNodeText(node, &quot;content:encoded&quot;).Length ) {
                     item.Contents = GetXmlNodeText(node, &quot;content:encoded&quot;);
                 }
             } catch ( Exception ) {
-                item.Contents = GetXmlNodeText(node, &quot;content:encoded&quot;);
+                if ( String.IsNullOrEmpty(item.Contents) ) {
+                    item.Contents = GetXmlNodeText(node, &quot;content:encoded&quot;);
+                }
             }
-            item.Date = GetRfc822DateTime(node, &quot;rss10:pubDate&quot;).ToString();
-            /*if ( item.Date == DateTime.MinValue.ToString() ) {
-                item.Date = GetRfc822DateTime(node, &quot;dc:date&quot;).ToString();
-            }*/
-            // should look for dc:date
+            item.Date = Convert.ToDateTime(GetXmlNodeText(node, &quot;dc:date&quot;)).ToString();
+            
             item.LastUpdated = GetRfc822DateTime(node, &quot;dcterms:modified&quot;).ToString();
             
             
@@ -259,7 +251,7 @@ namespace NewsKit {
             string result = GetXmlNodeText(node, tag);
 
             if (!String.IsNullOrEmpty(result)) {
-                ret = NewsKit.RssCommon.Parse(result);
+                ret = RssCommon.Parse(result);
             }
                     
             return ret;              </diff>
      <filename>src/NewsKit.RdfParser.cs</filename>
    </modified>
    <modified>
      <diff>@@ -1,8 +1,11 @@
 using System;
 using System.Net;
 using System.Text;
+using System.Text.RegularExpressions;
 using System.IO;
 
+using NewsKit;
+
 namespace NewsKit {
     public class Request {
         public string Uri;
@@ -20,11 +23,11 @@ namespace NewsKit {
         public Request(string uri, string last_modified) {
             Uri = uri;
             
-            if ( NewsKit.Globals.Connected ) {
+            if ( Globals.Connected ) {
                 try {
                     webrequest = (HttpWebRequest)WebRequest.Create(uri);
                     webrequest.AllowAutoRedirect = true;
-                    webrequest.UserAgent = NewsKit.Globals.UserAgent;
+                    webrequest.UserAgent = Globals.UserAgent;
                     webrequest.MaximumAutomaticRedirections = 4;
                     webrequest.MaximumResponseHeadersLength = 4;
                     
@@ -34,7 +37,7 @@ namespace NewsKit {
                             webrequest.IfModifiedSince = m;
                         }
                     } catch ( Exception e ) {
-                        NewsKit.Globals.Exception(e);
+                        Globals.Exception(e);
                     }
                     
                     webresponse = (HttpWebResponse)webrequest.GetResponse();
@@ -44,7 +47,7 @@ namespace NewsKit {
                     StringBuilder sb = new StringBuilder();
                     
                     if ( Status == HttpStatusCode.NotModified ) {
-                        throw new NewsKit.Exceptions.NotUpdated();
+                        throw new Exceptions.NotUpdated();
                     } else {
                         stream = webresponse.GetResponseStream();
                         string tempString = null;
@@ -62,28 +65,28 @@ namespace NewsKit {
                         while (count &gt; 0);
                         
                         Xml = sb.ToString();
-                        Xml = System.Text.RegularExpressions.Regex.Replace(Xml, &quot;&lt;( [a-z]+)=([a-zA-Z0-9:/._%;?=&amp;-]+)&quot;, &quot;$1=\&quot;$2\&quot;&quot;);
+                        Xml = Regex.Replace(Xml, &quot;&lt;( [a-z]+)=([a-zA-Z0-9:/._%;?=&amp;-]+)&quot;, &quot;$1=\&quot;$2\&quot;&quot;);
                         
                         LastModified = webresponse.LastModified.ToString();
                         try {
                             Etag = webresponse.Headers.GetValues(&quot;ETag&quot;)[0];
                         } catch ( Exception e ) {
-                            NewsKit.Globals.Exception(e);
+                            Globals.Exception(e);
                         }
                     }
                     webresponse.Close();
                 } catch ( System.Net.WebException e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     
                     try {
                         webresponse.Close();
                         stream.Close();
                     } catch ( Exception ) {}
                     
-                    throw new NewsKit.Exceptions.NotFound();
+                    throw new Exceptions.NotFound();
                 }
             } else {
-                throw new NewsKit.Exceptions.NotFound();
+                throw new Exceptions.NotFound();
             }
         }
     }</diff>
      <filename>src/NewsKit.Request.cs</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
-// NewsKit.RssCommon.cs
+// RssCommon.cs
 //
 // Mostly from Banshee's Migo.Syndication library
 // Copyright (c) 2006-2008 Michael C. Urbanski
@@ -27,6 +27,8 @@
 using System;
 using System.Text.RegularExpressions;
 
+using NewsKit;
+
 namespace NewsKit {
     public static class RssCommon {
         private const string monthsStr = 
@@ -124,8 +126,7 @@ namespace NewsKit {
                     offsetMinutes *= -1;
                 }
             } else {
-                switch ( offset )
-                {
+                switch ( offset ) {
                     case &quot;GMT&quot;: case &quot;UT&quot;: break;						
                     case &quot;EDT&quot;: offsetHours = -4; break;
                     case &quot;EST&quot;: case &quot;CDT&quot;: offsetHours = -5; break;</diff>
      <filename>src/NewsKit.RssCommon.cs</filename>
    </modified>
    <modified>
      <diff>@@ -28,6 +28,8 @@ using System.Collections;
 using System.Xml;
 using System.Text;
 
+using NewsKit;
+
 namespace NewsKit {
     public class RssParser : IFeedParser {
         private XmlDocument document;
@@ -39,7 +41,7 @@ namespace NewsKit {
                 try {
                     return name;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -51,7 +53,7 @@ namespace NewsKit {
                 try {
                     return subtitle;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -63,7 +65,7 @@ namespace NewsKit {
                 try {
                     return uri;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -75,7 +77,7 @@ namespace NewsKit {
                 try {
                     return author;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -87,7 +89,7 @@ namespace NewsKit {
                 try {
                     return image;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -99,7 +101,7 @@ namespace NewsKit {
                 try {
                     return license;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -111,7 +113,7 @@ namespace NewsKit {
                 try {
                     return etag;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -123,7 +125,7 @@ namespace NewsKit {
                 try {
                     return modified;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -135,7 +137,7 @@ namespace NewsKit {
                 try {
                     return favicon;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return &quot;&quot;;
                 }
             }
@@ -157,7 +159,7 @@ namespace NewsKit {
                 try {
                     return items;
                 } catch ( Exception e ) {
-                    NewsKit.Globals.Exception(e);
+                    Globals.Exception(e);
                     return new ArrayList();
                 }
             }
@@ -172,7 +174,7 @@ namespace NewsKit {
             try {
                 document.LoadXml(xml);
             } catch (XmlException e) {
-                NewsKit.Globals.Exception(e);
+                Globals.Exception(e);
                 bool have_stripped_control = false;
                 StringBuilder sb = new StringBuilder ();
 
@@ -207,8 +209,8 @@ namespace NewsKit {
             }
         }
         
-        private NewsKit.Item ParseItem(XmlNode node) {
-            NewsKit.Item item = new NewsKit.Item();
+        private Item ParseItem(XmlNode node) {
+            Item item = new Item();
             
             item.Title = GetXmlNodeText(node, &quot;title&quot;);
             item.Author = GetXmlNodeText(node, &quot;author&quot;);
@@ -242,7 +244,7 @@ namespace NewsKit {
             string result = GetXmlNodeText(node, tag);
 
             if (!String.IsNullOrEmpty(result)) {
-                ret = NewsKit.RssCommon.Parse(result);
+                ret = RssCommon.Parse(result);
             }
                     
             return ret;              </diff>
      <filename>src/NewsKit.RssParser.cs</filename>
    </modified>
    <modified>
      <diff>@@ -1,28 +1,32 @@
 using System;
 
+using NewsKit;
+
 namespace NewsKit {
     public static class TestBed {
         public static void Main() {
             IFeedParser p;
-            bool found = NewsKit.Core.ParseUri(&quot;http://timesonline.typepad.com/dons_life/index.rdf&quot;, &quot;&quot;, out p);
+            bool found = Core.ParseUri(&quot;http://daringfireball.net/index.xml&quot;, &quot;&quot;, out p);
             
-            Console.WriteLine(&quot;Feed Name: &quot;+p.Name);
-            Console.WriteLine(&quot;Feed  URL: &quot;+p.Uri);
-            Console.WriteLine(&quot;&quot;);
-            foreach ( NewsKit.Item i in p.Items ) {
-                Console.WriteLine(&quot;Item Name: &quot;+i.Title);
-                Console.WriteLine(&quot;Item URI: &quot;+i.Uri);
-                Console.WriteLine(&quot;Item Date: &quot;+i.Date);
-                if ( i.Contents == null ) {
-                    Console.WriteLine(&quot;Item Contents: No&quot;);
-                } else {
-                    if ( i.Contents.Length &gt; 5 ) {
-                        Console.WriteLine(&quot;Item Contents: Yes&quot;);
-                    } else {
+            if ( found ) {
+                Console.WriteLine(&quot;Feed Name: &quot;+p.Name);
+                Console.WriteLine(&quot;Feed  URL: &quot;+p.Uri);
+                Console.WriteLine(&quot;&quot;);
+                foreach ( NewsKit.Item i in p.Items ) {
+                    Console.WriteLine(&quot;Item Name: &quot;+i.Title);
+                    Console.WriteLine(&quot;Item URI: &quot;+i.Uri);
+                    Console.WriteLine(&quot;Item Date: &quot;+i.Date);
+                    if ( i.Contents == null ) {
                         Console.WriteLine(&quot;Item Contents: No&quot;);
+                    } else {
+                        if ( i.Contents.Length &gt; 5 ) {
+                            Console.WriteLine(&quot;Item Contents: Yes&quot;);
+                        } else {
+                            Console.WriteLine(&quot;Item Contents: No&quot;);
+                        }
                     }
+                    Console.WriteLine(&quot;&quot;);
                 }
-                Console.WriteLine(&quot;&quot;);
             }
         }
     }</diff>
      <filename>src/NewsKit.TestBed.cs</filename>
    </modified>
    <modified>
      <diff>@@ -33,47 +33,46 @@ using NDesk.DBus;
 
 using Gtk;
 
+using Summa.Core;
+using Summa.Data;
+using Summa.Gui;
+
 namespace Summa.Core {
     public static class Application {
-        public static LogList Log;
-        public static Summa.Core.Database Database;
         public static Gtk.ListStore TagStore;
         public static ArrayList Browsers;
         public static Summa.Gui.StatusIcon StatusIcon;
-        public static Summa.Core.Updater Updater;
-        public static Summa.Core.DBusInterface DBus;
+        public static Updater Updater;
+        public static DBusInterface DBus;
         public static bool WindowsShown;
         
         public static void Main() {
             //GLib.Thread.Init();
             Gdk.Threads.Init();
             
-            Log = new LogList();
-            
             Gtk.Application.Init();
             SetProcessName(&quot;summa&quot;);
             
-            GLib.Log.SetLogHandler(null, GLib.LogLevelFlags.All, new GLib.LogFunc(Summa.Core.Log.LogFunc)); //FIXME
+            GLib.Log.SetLogHandler(null, GLib.LogLevelFlags.All, new GLib.LogFunc(Log.LogFunc)); //FIXME
             
             /*
-             * the ListStore for all Summa.Gui.TagViews, since tags don't
+             * the ListStore for all TagViews, since tags don't
              * vary by context.
              */
             TagStore = new Gtk.ListStore(typeof(Gdk.Pixbuf), typeof(string));
             
-            Database = new Summa.Core.Database();
-            Updater = new Summa.Core.Updater();
-            DBus = new Summa.Core.DBusInterface();
+            Updater = new Updater();
+            DBus = new DBusInterface();
             /*
              * a list of browser instances - when a browser is created, it
              * should be added to this list, and when it is destroyed, it
              * should be removed.
              */
             Browsers = new ArrayList();
-            Browsers.Add(new Summa.Gui.Browser());
+            Browsers.Add(new Browser());
             StatusIcon = new Summa.Gui.StatusIcon();
             
-            foreach ( Summa.Gui.Browser browser in Browsers ) {
+            foreach ( Browser browser in Browsers ) {
                 browser.ShowAll();
             }
             WindowsShown = true;
@@ -84,9 +83,14 @@ namespace Summa.Core {
         }
         
         private static void DebugTest() {
+            /*foreach ( ISource source in Feeds.GetFeeds() ) {
+                foreach ( Item item in source.Items ) {
+                    item.Read = true;
+                }
+            }*/
         }
         
-        public static void CloseWindow(Summa.Gui.Browser browser) {
+        public static void CloseWindow(Browser browser) {
             if ( Browsers.Count == 1 ) {
                 /* get dimensions */
                 int width;
@@ -94,8 +98,8 @@ namespace Summa.Core {
                 
                 browser.GetSize(out width, out height);
                 
-                Summa.Core.Config.WindowWidth = width;
-                Summa.Core.Config.WindowHeight = height;
+                Config.WindowWidth = width;
+                Config.WindowHeight = height;
                 
                 /* get pane positions */
                 int main_size;
@@ -106,9 +110,9 @@ namespace Summa.Core {
                 left_size = browser.left_paned.Position;
                 right_size = browser.right_paned.Position;
                 
-                Summa.Core.Config.MainPanePosition = main_size;
-                Summa.Core.Config.LeftPanePosition = left_size;
-                Summa.Core.Config.RightPanePosition = right_size;
+                Config.MainPanePosition = main_size;
+                Config.LeftPanePosition = left_size;
+                Config.RightPanePosition = right_size;
                 
                 Bus.Session.Unregister(new ObjectPath(DBus.ObjPath));
                 Bus.Session.ReleaseName(DBus.BusName);
@@ -122,12 +126,12 @@ namespace Summa.Core {
         
         public static void ToggleShown() {
             if ( WindowsShown ) {
-                foreach ( Summa.Gui.Browser browser in Summa.Core.Application.Browsers ) {
+                foreach ( Browser browser in Application.Browsers ) {
                     browser.Hide();
                 }
                 WindowsShown = false;
             } else {
-                foreach ( Summa.Gui.Browser browser in Summa.Core.Application.Browsers ) {
+                foreach ( Browser browser in Application.Browsers ) {
                     browser.Show();
                 }
                 WindowsShown = true;
@@ -143,7 +147,7 @@ namespace Summa.Core {
 
 		public static void SetProcessName(string name) {
 			if (prctl (PR_SET_NAME, Encoding.ASCII.GetBytes (name + '\0'), 0, 0, 0) &lt; 0) {
-				Summa.Core.Log.Message(String.Format(&quot;Couldn't set process name to '{0}': {1}&quot;, name, Mono.Unix.Native.Stdlib.GetLastError()));
+				Log.Message(String.Format(&quot;Couldn't set process name to '{0}': {1}&quot;, name, Mono.Unix.Native.Stdlib.GetLastError()));
 			}
 		}
     }</diff>
      <filename>src/Summa.Core.Application.cs</filename>
    </modified>
    <modified>
      <diff>@@ -27,9 +27,11 @@ using System;
 using System.Collections;
 using GConf;
 
+using Summa.Core;
+
 namespace Summa.Core {
     public static class Config {
-        private static GConf.Client client = new GConf.Client();
+        private static Client client = new Client();
         
         //TODO: put these in a schema file.
         private static string KEY_LIBNOTIFY = &quot;/apps/summa/show_notifications&quot;;
@@ -47,13 +49,14 @@ namespace Summa.Core {
         private static string KEY_THEME = &quot;/apps/summa/theme&quot;;
         private static string KEY_STATUS_ICON = &quot;/apps/summa/show_status_icon&quot;;
         private static string KEY_ICON_FEEDS = &quot;/apps/summa/show_status_icon_for&quot;;
+        private static string KEY_NUMBER_OF_ITEMS = &quot;/apps/summa/save_number_of_items&quot;;
         
         public static bool ShowNotifications {
             get {
                 try {
                     return (bool)client.Get(KEY_LIBNOTIFY);
-                } catch ( GConf.NoSuchKeyException e ) {
-                    Summa.Core.Log.Exception(e);
+                } catch ( NoSuchKeyException e ) {
+                    Log.Exception(e);
                     client.Set(KEY_LIBNOTIFY, true);
                     return true;
                 }
@@ -67,8 +70,8 @@ namespace Summa.Core {
             get {
                 try {
                     return (int)client.Get(KEY_WIN_HEIGHT);
-                } catch ( GConf.NoSuchKeyException e ) {
-                    Summa.Core.Log.Exception(e);
+                } catch ( NoSuchKeyException e ) {
+                    Log.Exception(e);
                     client.Set(KEY_WIN_HEIGHT, 400);
                     return 400;
                 }
@@ -82,8 +85,8 @@ namespace Summa.Core {
             get {
                 try {
                     return (int)client.Get(KEY_WIN_WIDTH);
-                } catch ( GConf.NoSuchKeyException e ) {
-                    Summa.Core.Log.Exception(e);
+                } catch ( NoSuchKeyException e ) {
+                    Log.Exception(e);
                     client.Set(KEY_WIN_WIDTH, 700);
                     return 700;
                 }
@@ -97,8 +100,8 @@ namespace Summa.Core {
             get {
                 try {
                     return (int)client.Get(KEY_MAIN_PANE_POSITION);
-                } catch ( GConf.NoSuchKeyException e ) {
-                    Summa.Core.Log.Exception(e);
+                } catch ( NoSuchKeyException e ) {
+                    Log.Exception(e);
                     client.Set(KEY_MAIN_PANE_POSITION, 170);
                     return 170;
                 }
@@ -112,8 +115,8 @@ namespace Summa.Core {
             get {
                 try {
                     return (int)client.Get(KEY_LEFT_PANE_POSITION);
-                } catch ( GConf.NoSuchKeyException e ) {
-                    Summa.Core.Log.Exception(e);
+                } catch ( NoSuchKeyException e ) {
+                    Log.Exception(e);
                     client.Set(KEY_LEFT_PANE_POSITION, 170);
                     return 170;
                 }
@@ -127,8 +130,8 @@ namespace Summa.Core {
             get {
                 try {
                     return (int)client.Get(KEY_RIGHT_PANE_POSITION);
-                } catch ( GConf.NoSuchKeyException e ) {
-                    Summa.Core.Log.Exception(e);
+                } catch ( NoSuchKeyException e ) {
+                    Log.Exception(e);
                     client.Set(KEY_RIGHT_PANE_POSITION, 170);
                     return 170;
                 }
@@ -142,8 +145,8 @@ namespace Summa.Core {
             get {
                 try {
                     return (bool)client.Get(KEY_SHOULD_SORT_FEEDVIEW);
-                } catch ( GConf.NoSuchKeyException e ) {
-                    Summa.Core.Log.Exception(e);
+                } catch ( NoSuchKeyException e ) {
+                    Log.Exception(e);
                     client.Set(KEY_SHOULD_SORT_FEEDVIEW, false);
                     return false;
                 }
@@ -157,15 +160,15 @@ namespace Summa.Core {
             get {
                 try {
                     return (int)client.Get(KEY_DEFAULT_ZOOM_LEVEL);
-                } catch ( GConf.NoSuchKeyException e ) {
-                    Summa.Core.Log.Exception(e);
+                } catch ( NoSuchKeyException e ) {
+                    Log.Exception(e);
                     client.Set(KEY_DEFAULT_ZOOM_LEVEL, 10);
                     return 10;
                 }
             }
             set {
                 client.Set(KEY_DEFAULT_ZOOM_LEVEL, value);
-                Summa.Core.Notifier.ChangeZoom();
+                Notifier.ChangeZoom();
             }
         }
         
@@ -174,8 +177,8 @@ namespace Summa.Core {
                 try {
                     int a = (int)client.Get(KEY_GLOBAL_UPDATE_INTERVAL);
                     return (uint)a;
-                } catch ( GConf.NoSuchKeyException e ) {
-                    Summa.Core.Log.Exception(e);
+                } catch ( NoSuchKeyException e ) {
+                    Log.Exception(e);
                     client.Set(KEY_GLOBAL_UPDATE_INTERVAL, 3600000);
                     return 3600000;
                 }
@@ -189,8 +192,8 @@ namespace Summa.Core {
             get {
                 try {
                     return (string)client.Get(KEY_BOOKMARKER);
-                } catch ( GConf.NoSuchKeyException e ) {
-                    Summa.Core.Log.Exception(e);
+                } catch ( NoSuchKeyException e ) {
+                    Log.Exception(e);
                     client.Set(KEY_BOOKMARKER, &quot;Native&quot;);
                     return &quot;Native&quot;;
                 }
@@ -204,8 +207,8 @@ namespace Summa.Core {
             get {
                 try {
                     return (bool)client.Get(KEY_TABS);
-                } catch ( GConf.NoSuchKeyException e ) {
-                    Summa.Core.Log.Exception(e);
+                } catch ( NoSuchKeyException e ) {
+                    Log.Exception(e);
                     client.Set(KEY_TABS, false);
                     return false;
                 }
@@ -219,15 +222,15 @@ namespace Summa.Core {
             get {
                 try {
                     return (bool)client.Get(KEY_WIDESCREEN);
-                } catch ( GConf.NoSuchKeyException e ) {
-                    Summa.Core.Log.Exception(e);
+                } catch ( NoSuchKeyException e ) {
+                    Log.Exception(e);
                     client.Set(KEY_WIDESCREEN, false);
                     return false;
                 }
             }
             set {
                 client.Set(KEY_WIDESCREEN, value);
-                Summa.Core.Notifier.ChangeView();
+                Notifier.ChangeView();
             }
         }
         
@@ -247,11 +250,11 @@ namespace Summa.Core {
             }
         }
         
-        public static Summa.Core.ITheme Theme {
+        public static ITheme Theme {
             get {
                 try {
                     string name = (string)client.Get(KEY_THEME);
-                    foreach ( Summa.Core.ITheme theme in Summa.Core.ThemeManager.Themes ) {
+                    foreach ( ITheme theme in ThemeManager.Themes ) {
                         if ( theme.Name == name ) {
                             return theme;
                         }
@@ -263,7 +266,7 @@ namespace Summa.Core {
                 }
             }
             set {
-                Summa.Core.ITheme theme = (Summa.Core.ITheme)value;
+                ITheme theme = (ITheme)value;
                 client.Set(KEY_THEME, theme.Name);
             }
         }
@@ -272,15 +275,15 @@ namespace Summa.Core {
             get {
                 try {
                     return (bool)client.Get(KEY_STATUS_ICON);
-                } catch ( GConf.NoSuchKeyException e ) {
-                    Summa.Core.Log.Exception(e);
+                } catch ( NoSuchKeyException e ) {
+                    Log.Exception(e);
                     client.Set(KEY_STATUS_ICON, false);
                     return false;
                 }
             }
             set {
                 client.Set(KEY_STATUS_ICON, value);
-                Summa.Core.Notifier.ShowIcon();
+                Notifier.ShowIcon();
             }
         }
         
@@ -296,8 +299,8 @@ namespace Summa.Core {
                         }
                     }
                     return returls;
-                } catch ( GConf.NoSuchKeyException e ) {
-                    Summa.Core.Log.Exception(e);
+                } catch ( NoSuchKeyException e ) {
+                    Log.Exception(e);
                     client.Set(KEY_ICON_FEEDS, &quot;&quot;);
                     return new ArrayList();
                 }
@@ -308,5 +311,20 @@ namespace Summa.Core {
                 client.Set(KEY_ICON_FEEDS, retstring);
             }
         }
+        
+        public static int NumberOfItems {
+            get {
+                try {
+                    return (int)client.Get(KEY_NUMBER_OF_ITEMS);
+                } catch ( NoSuchKeyException e ) {
+                    Log.Exception(e);
+                    client.Set(KEY_NUMBER_OF_ITEMS, 100);
+                    return 100;
+                }
+            }
+            set {
+                client.Set(KEY_NUMBER_OF_ITEMS, value);
+            }
+        }
     }
 }</diff>
      <filename>src/Summa.Core.Config.cs</filename>
    </modified>
    <modified>
      <diff>@@ -27,6 +27,9 @@ using System;
 using NDesk.DBus;
 using org.freedesktop.DBus;
 
+using Summa.Core;
+using Summa.Data;
+
 namespace Summa.Core {
     [Interface(&quot;org.gnome.feed.Reader&quot;)]
     public interface SummaDBus { // make sure to keep up with Liferea
@@ -42,14 +45,14 @@ namespace Summa.Core {
         public string ObjPath = &quot;/org/gnome/feed/Reader&quot;;
         
         public DBusInterface() {
-            NDesk.DBus.BusG.Init();
+            BusG.Init();
             
             Bus.Session.RequestName(BusName);
             Bus.Session.Register(new ObjectPath(ObjPath), this);
         }
         
         public bool Subscribe(string url) {
-            Summa.Data.Core.RegisterFeed(url);
+            Feeds.RegisterFeed(url);
             
             return true;
         }
@@ -59,16 +62,16 @@ namespace Summa.Core {
         }
         
         public bool SetOnline(bool online) {
-            Summa.Core.Config.Connected = online;
-            return Summa.Core.Config.Connected;
+            Config.Connected = online;
+            return Config.Connected;
         }
         
         public int GetUnreadItems() {
-            return Summa.Data.Core.GetUnreadCount();
+            return Feeds.GetUnreadCount();
         }
         
         public int GetNewItems() {
-            return Summa.Data.Core.GetUnreadCount();
+            return Feeds.GetUnreadCount();
         }
     }
 }</diff>
      <filename>src/Summa.Core.DBus.cs</filename>
    </modified>
    <modified>
      <diff>@@ -3,7 +3,7 @@
 // Copyright (c) 2008 Ethan Osten
 //
 // Permission is hereby granted, free of charge, to any person
-// obtaining a copy of this software and associated documentation
+// obtaining a copy of &quot;&quot; software and associated documentation
 // files (the &quot;Software&quot;), to deal in the Software without
 // restriction, including without limitation the rights to use,
 // copy, modify, merge, publish, distribute, sublicense, and/or sell
@@ -11,7 +11,7 @@
 // Software is furnished to do so, subject to the following
 // conditions:
 //
-// The above copyright notice and this permission notice shall be
+// The above copyright notice and &quot;&quot; permission notice shall be
 // included in all copies or substantial portions of the Software.
 //
 // THE SOFTWARE IS PROVIDED &quot;AS IS&quot;, WITHOUT WARRANTY OF ANY KIND,
@@ -30,22 +30,27 @@ using System.IO;
 using System.Data;
 using Mono.Data.SqliteClient;
 
+using Summa.Core;
+
 namespace Summa.Core {
-    public class Database {
-        private static string uri = Mono.Unix.Native.Stdlib.getenv(&quot;HOME&quot;)+&quot;/.config/summa/database.db&quot;;
-        private string Uri = &quot;URI=file://&quot;+uri;
-        private IDbConnection db;
+    public static class Database {
+        private static string uri;
+        private static string Uri;
+        private static IDbConnection db;
         
-        public event Summa.Core.FeedAddedHandler FeedAdded;
-        public event Summa.Core.FeedDeletedHandler FeedDeleted;
-        public event Summa.Core.FeedChangedHandler FeedChanged;
-        public event Summa.Core.ItemAddedHandler ItemAdded;
-        public event Summa.Core.ItemDeletedHandler ItemDeleted;
-        public event Summa.Core.ItemChangedHandler ItemChanged;
+        public static event FeedAddedHandler FeedAdded;
+        public static event FeedDeletedHandler FeedDeleted;
+        public static event FeedChangedHandler FeedChanged;
+        public static event ItemAddedHandler ItemAdded;
+        public static event ItemDeletedHandler ItemDeleted;
+        public static event ItemChangedHandler ItemChanged;
         
-        private Hashtable GeneratedNames;
+        private static Hashtable GeneratedNames;
         
-        public Database() {
+        static Database() {
+            uri = Mono.Unix.Native.Stdlib.getenv(&quot;HOME&quot;)+&quot;/.config/summa/database.db&quot;;
+            Uri = &quot;URI=file://&quot;+uri;
+            
             Directory.CreateDirectory(Mono.Unix.Native.Stdlib.getenv(&quot;HOME&quot;)+&quot;/.config/summa/&quot;);
             
             bool exists = File.Exists(uri);
@@ -64,7 +69,7 @@ namespace Summa.Core {
             }
         }
         
-        private void NonQueryCommand(string commandtext) {
+        private static void NonQueryCommand(string commandtext) {
             IDbCommand dbcmd = db.CreateCommand();
             dbcmd.CommandText = commandtext;
             dbcmd.ExecuteNonQuery();
@@ -72,7 +77,7 @@ namespace Summa.Core {
             dbcmd = null;
         }
         
-        private string EscapeParam(string parameter) {
+        private static string EscapeParam(string parameter) {
             Encoding enc = new ASCIIEncoding();
             try {
                 Byte[] bytes = enc.GetBytes(parameter);
@@ -84,7 +89,7 @@ namespace Summa.Core {
             }
         }
         
-        private string UnescapeParam(string parameter) {
+        private static string UnescapeParam(string parameter) {
             try {
                 //return HttpUtility.HtmlDecode(parameter);
                 return parameter;
@@ -94,7 +99,7 @@ namespace Summa.Core {
             }
         }
         
-        private void Initialize() {
+        private static void Initialize() {
             NonQueryCommand(&quot;create table Summa (id INTEGER PRIMARY KEY, version VARCHAR(50))&quot;);
             
             NonQueryCommand(&quot;create table Feeds (id INTEGER PRIMARY KEY, uri VARCHAR(50), generated_name VARCHAR(50), name VARCHAR(50), author VARCHAR(50), subtitle VARCHAR(50), image VARCHAR(50), license VARCHAR(50), etag VARCHAR(50), hmodified VARCHAR(50), status VARCHAR(50), tags VARCHAR(50), favicon VARCHAR(50))&quot;);
@@ -102,7 +107,7 @@ namespace Summa.Core {
             NonQueryCommand(String.Format(&quot;insert into Summa values (null, {0})&quot;, @&quot;&quot;&quot;0&quot;&quot;&quot;)); 
         }
         
-        private string GenerateRandomName() {
+        private static string GenerateRandomName() {
             Random random = new Random();
             StringBuilder builder = new StringBuilder();
             
@@ -112,11 +117,11 @@ namespace Summa.Core {
             return builder.ToString();
         }
         
-        public string GetGeneratedName(string uri) {
+        public static string GetGeneratedName(string uri) {
             return (string)GeneratedNames[uri];
         }
         
-        public string CreateFeed(string uri, string name, string author, string subtitle, string image, string license, string etag, string hmodified, string status, string tags, string favicon) {
+        public static string CreateFeed(string uri, string name, string author, string subtitle, string image, string license, string etag, string hmodified, string status, string tags, string favicon) {
             string generated_name = GenerateRandomName();
             
             IDbCommand dbcmd = db.CreateCommand();
@@ -234,25 +239,25 @@ namespace Summa.Core {
             
             GeneratedNames.Add(uri, generated_name);
             
-            Summa.Core.AddedEventArgs args = new Summa.Core.AddedEventArgs();
+            AddedEventArgs args = new AddedEventArgs();
             args.Uri = uri;
-            FeedAdded(this, args);
+            FeedAdded(&quot;&quot;, args);
             
             return generated_name;
         }
         
-        public void DeleteFeed(string uri) {
+        public static void DeleteFeed(string uri) {
             NonQueryCommand(&quot;drop table &quot;+GetGeneratedName(uri));
             NonQueryCommand(@&quot;delete from Feeds where uri=&quot;&quot;&quot;+EscapeParam(uri)+@&quot;&quot;&quot;&quot;);
             
             GeneratedNames.Remove(uri);
             
-            Summa.Core.AddedEventArgs args = new Summa.Core.AddedEventArgs();
+            AddedEventArgs args = new AddedEventArgs();
             args.Uri = uri;
-            FeedDeleted(this, args);
+            FeedDeleted(&quot;&quot;, args);
         }
         
-        public string[] GetFeed(string uri) {
+        public static string[] GetFeed(string uri) {
             string[] feed = new string[13];
             
             IDbCommand dbcmd = db.CreateCommand();
@@ -285,7 +290,7 @@ namespace Summa.Core {
             return feed;
         }
         
-        public ArrayList GetFeeds() {
+        public static ArrayList GetFeeds() {
             ArrayList list = new ArrayList();
             
             IDbCommand dbcmd = db.CreateCommand();
@@ -317,7 +322,7 @@ namespace Summa.Core {
             return list;
         }
         
-        public bool FeedExists(string url) {
+        public static bool FeedExists(string url) {
             bool exists = false;
             foreach (string[] feed in GetFeeds()) {
                 if ( feed[1] == url ) {
@@ -327,7 +332,7 @@ namespace Summa.Core {
             return exists;
         }
         
-        public ArrayList GetPosts(string feeduri) {
+        public static ArrayList GetPosts(string feeduri) {
             ArrayList list = new ArrayList();
             
             IDbCommand dbcmd = db.CreateCommand();
@@ -355,7 +360,7 @@ namespace Summa.Core {
             return list;
         }
         
-        public string[] GetItem(string feeduri, string uri) {
+        public static string[] GetItem(string feeduri, string uri) {
             string[] item = null;
             
             IDbCommand dbcmd = db.CreateCommand();
@@ -381,19 +386,19 @@ namespace Summa.Core {
             return item;
         }
         
-        public void DeleteItem(string feeduri, string uri) {
+        public static void DeleteItem(string feeduri, string uri) {
             string generated_name = GetGeneratedName(feeduri);
             string command = &quot;delete from &quot;+generated_name+@&quot; where uri=&quot;&quot;&quot;+EscapeParam(uri)+@&quot;&quot;&quot;&quot;;
             
             NonQueryCommand(command);
             
-            Summa.Core.AddedEventArgs args = new Summa.Core.AddedEventArgs();
+            AddedEventArgs args = new AddedEventArgs();
             args.Uri = uri;
             args.FeedUri = feeduri;
-            ItemAdded(this, args);
+            ItemAdded(&quot;&quot;, args);
         }
         
-        public void AddItem(string feeduri, string title, string uri, string date, string last_updated, string author, string tags, string content, string encuri, string read, string flagged) {
+        public static void AddItem(string feeduri, string title, string uri, string date, string last_updated, string author, string tags, string content, string encuri, string read, string flagged) {
             string generated_name = GetGeneratedName(feeduri);
             
             IDbCommand dbcmd = db.CreateCommand();
@@ -493,34 +498,34 @@ namespace Summa.Core {
             dbcmd.Dispose();
             dbcmd = null;
             
-            Summa.Core.AddedEventArgs args = new Summa.Core.AddedEventArgs();
+            AddedEventArgs args = new AddedEventArgs();
             args.Uri = uri;
             args.FeedUri = feeduri;
-            ItemAdded(this, args);
+            ItemAdded(&quot;&quot;, args);
         }
         
-        public void ChangeFeedInfo(string feeduri, string property, string intended_value) {
+        public static void ChangeFeedInfo(string feeduri, string property, string intended_value) {
             NonQueryCommand(&quot;update Feeds set &quot;+property+@&quot;=&quot;&quot;&quot;+EscapeParam(intended_value)+@&quot;&quot;&quot; where uri=&quot;&quot;&quot;+EscapeParam(feeduri)+@&quot;&quot;&quot;&quot;);
             
-            Summa.Core.ChangedEventArgs args = new Summa.Core.ChangedEventArgs();
+            ChangedEventArgs args = new ChangedEventArgs();
             args.Uri = feeduri;
             args.Value = intended_value;
             args.ItemProperty = property;
-            FeedChanged(this, args);
+            FeedChanged(&quot;&quot;, args);
         }
         
-        public void ChangeItemInfo(string feeduri, string itemuri, string property, string intended_value) { //optimize
+        public static void ChangeItemInfo(string feeduri, string itemuri, string property, string intended_value) { //optimize
             NonQueryCommand(&quot;update &quot;+GetGeneratedName(feeduri)+&quot; set &quot;+property+@&quot;=&quot;&quot;&quot;+EscapeParam(intended_value)+@&quot;&quot;&quot; where uri=&quot;&quot;&quot;+EscapeParam(itemuri)+@&quot;&quot;&quot;&quot;);
             
-            Summa.Core.ChangedEventArgs args = new Summa.Core.ChangedEventArgs();
+            ChangedEventArgs args = new ChangedEventArgs();
             args.Uri = itemuri;
             args.FeedUri = feeduri;
             args.Value = intended_value;
             args.ItemProperty = property;
-            ItemChanged(this, args);
+            ItemChanged(&quot;&quot;, args);
         }
         
-        public ArrayList GetTags() {
+        public static ArrayList GetTags() {
             ArrayList list = new ArrayList();
             
             foreach ( string feeduri in GetFeeds() ) {</diff>
      <filename>src/Summa.Core.Database.cs</filename>
    </modified>
    <modified>
      <diff>@@ -25,6 +25,8 @@
 
 using System;
 
+using Summa.Core;
+
 namespace Summa.Core {
     public class NotificationEventArgs : EventArgs {
         public string Message;</diff>
      <filename>src/Summa.Core.EventArgs.cs</filename>
    </modified>
    <modified>
      <diff>@@ -25,6 +25,8 @@
 
 using System;
 
+using Summa.Core;
+
 namespace Summa.Core {
     namespace Exceptions {
         // thrown when Update() or RegisterFeed() run into problems</diff>
      <filename>src/Summa.Core.Exceptions.cs</filename>
    </modified>
    <modified>
      <diff>@@ -26,6 +26,8 @@
 using System;
 using System.Collections;
 
+using Summa.Core;
+
 namespace Summa.Core {
     public interface IBookmarker {
         void ShowBookmarkWindow(string title, string url, string content, string tags);</diff>
      <filename>src/Summa.Core.IBookmarker.cs</filename>
    </modified>
    <modified>
      <diff>@@ -25,6 +25,8 @@
 
 using System;
 
+using Summa.Core;
+
 namespace Summa.Core {
     public interface IMediaPlayer {
         bool GetPlaying();</diff>
      <filename>src/Summa.Core.IMediaPlayer.cs</filename>
    </modified>
    <modified>
      <diff>@@ -26,12 +26,14 @@
 using System;
 using System.Collections;
 
+using Summa.Data;
+
 namespace Summa.Core {
     public interface ITheme {
         string Name {get;}
         string Uri {get; set;}
         
-        string MakeHtml(Summa.Data.ISource feed);
-        string MakeHtml(Summa.Data.Item item);
+        string MakeHtml(ISource feed);
+        string MakeHtml(Item item);
     }
 }</diff>
      <filename>src/Summa.Core.ITheme.cs</filename>
    </modified>
    <modified>
      <diff>@@ -25,30 +25,40 @@
 
 using System;
 
+using Summa.Core;
+
 namespace Summa.Core {
     public static class Log {
+        public static event EventHandler LogAdded;
+        public static event EventHandler LogRemoved;
+        
+        private static LogList log_list;
+        
+        static Log() {
+            log_list = new LogList();
+        }
+        
         public static void Exception(Exception e) {
-            Summa.Core.Application.Log.AddMessage(e.ToString());
+            log_list.AddMessage(e.ToString());
+            //Log.LogAdded(null, new EventArgs());
         }
         
         public static void Exception(Exception e, string message) {
-            Summa.Core.Application.Log.AddMessage(e.ToString()+&quot; with message &quot;+message);
+            log_list.AddMessage(e.ToString()+&quot; with message &quot;+message);
+            //Log.LogAdded(null, new EventArgs());
         }
         
         public static void Message(string message) {
-            Summa.Core.Application.Log.AddMessage(message);
+            log_list.AddMessage(message);
+            //Log.LogAdded(null, new EventArgs());
         }
         
         public static void LogFunc(string log_domain, GLib.LogLevelFlags log_level, string message) {
             Message(message);
         }
         
-        public static void EmitLogAdded() {
-            //LogAdded(null, new EventArgs());
-        }
-        
-        public static void EmitLogRemoved() {
-            //LogRemoved(null, new EventArgs());
+        public static void RemoveLog() {
+            //Log.LogRemoved(null, new EventArgs());
         }
     }
 }</diff>
      <filename>src/Summa.Core.Log.cs</filename>
    </modified>
    <modified>
      <diff>@@ -26,22 +26,22 @@
 using System;
 using System.Collections;
 
+using Summa.Core;
+
 namespace Summa.Core {
     public class LogList : ArrayList {
-        public LogList() : base() {
-        }
+        public LogList() : base() {}
         
         public void AddMessage(string message) {
             this.Add(message);
             
-            Summa.Core.Log.EmitLogAdded();
             this.Trim();
         }
         
         private void Trim() {
             while ( Count &gt; 100 ) {
                 Remove(this[0]);
-                Summa.Core.Log.EmitLogRemoved();
+                Log.RemoveLog();
             }
         }
     }</diff>
      <filename>src/Summa.Core.LogList.cs</filename>
    </modified>
    <modified>
      <diff>@@ -27,37 +27,41 @@ using System;
 using NDesk.DBus;
 using Notifications;
 
+using Summa.Core;
+
 namespace Summa.Core {
     public static class Notifier {
-        public static event Summa.Core.NotificationEventHandler NewMessage;
+        public static event NotificationEventHandler NewMessage;
         public static event EventHandler ZoomChanged;
         public static event EventHandler ViewChanged;
         public static event EventHandler IconShown;
         
         public static void Notify(string message) {
-            Summa.Core.NotificationEventArgs args = new Summa.Core.NotificationEventArgs();
+            NotificationEventArgs args = new NotificationEventArgs();
             args.Message = message;
-            NewMessage(null, args);
+            NewMessage(&quot;&quot;, args);
         }
         
         public static void PopupNotification(string message, string body) {
             Notifications.Notification n = new Notifications.Notification(message, body, &quot;summa&quot;);
-            if ( Summa.Core.Config.ShowStatusIcon ) {
-                //n.AttachToStatusIcon(Summa.Core.Application.StatusIcon);
+            if ( Config.ShowStatusIcon ) {
+                //n.AttachToStatusIcon(Application.StatusIcon);
             }
             n.Show();
         }
         
         public static void ChangeZoom() {
-            ZoomChanged(null, new EventArgs());
+            ZoomChanged(&quot;&quot;, new EventArgs());
         }
         
         public static void ChangeView() {
-            ViewChanged(null, new EventArgs());
+            ViewChanged(&quot;&quot;, new EventArgs());
         }
         
         public static void ShowIcon() {
-            IconShown(null, new EventArgs());
+            try {
+                IconShown(&quot;&quot;, new EventArgs());
+            } catch ( Exception ) {}
         }
     }
 }</diff>
      <filename>src/Summa.Core.Notifier.cs</filename>
    </modified>
    <modified>
      <diff>@@ -26,16 +26,19 @@
 using System;
 using System.Collections;
 
+using Summa.Core;
+using Summa.Gui;
+
 namespace Summa.Core {
     public static class ThemeManager {
         public static ArrayList Themes {
             get {
                 ArrayList list = new ArrayList();
                 
-                //FIXME: a foreach here, iterating over installed themes other
-                //than the default one
+                // FIXME: a foreach here, iterating over installed themes other
+                // than the default one
                 
-                list.Add(new Summa.Gui.NativeTheme());
+                list.Add(new NativeTheme());
                 return list;
             }
         }</diff>
      <filename>src/Summa.Core.ThemeManager.cs</filename>
    </modified>
    <modified>
      <diff>@@ -29,6 +29,9 @@ using System.Threading;
 
 using GLib;
 
+using Summa.Core;
+using Summa.Data;
+
 namespace Summa.Core {
     public class Updater {
         public bool Updating;
@@ -36,15 +39,15 @@ namespace Summa.Core {
         
         private Queue updating_queue;
         
-        private Summa.Data.ISource updating_feed;
+        private ISource updating_feed;
         private string adding_url;
         
         public ArrayList FeedsUpdating {
             get {
-                Summa.Data.Feed[] array = (Summa.Data.Feed[])updating_queue.ToArray();
+                Feed[] array = (Feed[])updating_queue.ToArray();
                 ArrayList retval = new ArrayList();
                 
-                foreach ( Summa.Data.Feed feed in array ) {
+                foreach ( Feed feed in array ) {
                     retval.Add(feed);
                 }
                 
@@ -58,28 +61,28 @@ namespace Summa.Core {
             
             updating_queue = new Queue();
             
-            GLib.Timeout.Add(Summa.Core.Config.GlobalUpdateInterval, new GLib.TimeoutHandler(ScheduledUpdate));
+            GLib.Timeout.Add(Config.GlobalUpdateInterval, new GLib.TimeoutHandler(ScheduledUpdate));
         }
         
         private void UpdateThread() {
-            foreach ( Summa.Data.Feed feed in updating_queue ) {
+            foreach ( Feed feed in updating_queue ) {
                 Updating = true;
                 bool update = false;
                 
                 //try {
-                    Summa.Core.NotificationEventArgs fargs = new Summa.Core.NotificationEventArgs();
-                    fargs.Message = &quot;Updating feed: &quot;+feed.Name;
+                    NotificationEventArgs fargs = new NotificationEventArgs();
+                    fargs.Message = String.Format(StringCatalog.UpdatingFeed, feed.Name);
                     Gtk.Application.Invoke(this, fargs, OnNotify);
                     
                     update = feed.Update();
                     
                     if ( update ) {
-                        Summa.Core.NotificationEventArgs args = new Summa.Core.NotificationEventArgs();
+                        NotificationEventArgs args = new NotificationEventArgs();
                         args.Message = feed.Name+&quot; has new items.&quot;;
                         args.Title = feed.Name;
                         Gtk.Application.Invoke(this, args, OnNotify);
                     } else {
-                        Summa.Core.NotificationEventArgs args = new Summa.Core.NotificationEventArgs();
+                        NotificationEventArgs args = new NotificationEventArgs();
                         args.Message = feed.Name+&quot; has no new items.&quot;;
                         Gtk.Application.Invoke(this, args, new EventHandler(OnNotify));
                     }
@@ -88,11 +91,11 @@ namespace Summa.Core {
         }
         
         private void OnNotify(object obj, EventArgs args) {
-            Summa.Core.NotificationEventArgs iargs = (Summa.Core.NotificationEventArgs)args;
-            Summa.Core.Notifier.Notify(iargs.Message);
+            NotificationEventArgs iargs = (NotificationEventArgs)args;
+            Notifier.Notify(iargs.Message);
             
             if ( iargs.Title != null ) {
-                Summa.Core.Notifier.PopupNotification(iargs.Title, iargs.Message);
+                Notifier.PopupNotification(iargs.Title, iargs.Message);
             }
         }
         
@@ -100,7 +103,7 @@ namespace Summa.Core {
             if (!Updating) {
                 should_automatic_update = false;
                 
-                foreach ( Summa.Data.Feed feed in Summa.Data.Core.GetFeeds() ) {
+                foreach ( Feed feed in Feeds.GetFeeds() ) {
                     updating_queue.Enqueue(feed);
                 }
             
@@ -111,25 +114,25 @@ namespace Summa.Core {
         
         private void UpdateFeedThread() {
             try {
-                Summa.Core.NotificationEventArgs fargs = new Summa.Core.NotificationEventArgs();
+                NotificationEventArgs fargs = new NotificationEventArgs();
                 fargs.Message = &quot;Updating feed: &quot;+updating_feed.Name;
                 Gtk.Application.Invoke(this, fargs, OnNotify);
                 
                 bool update = updating_feed.Update();
                 
                 if ( update ) {
-                    Summa.Core.NotificationEventArgs args = new Summa.Core.NotificationEventArgs();
+                    NotificationEventArgs args = new NotificationEventArgs();
                     args.Message = updating_feed.Name+&quot; has new items.&quot;;
                     Gtk.Application.Invoke(this, args, OnNotify);
                 } else {
-                    Summa.Core.NotificationEventArgs args = new Summa.Core.NotificationEventArgs();
+                    NotificationEventArgs args = new NotificationEventArgs();
                     args.Message = updating_feed.Name+&quot; has no new items.&quot;;
                     Gtk.Application.Invoke(this, args, new EventHandler(OnNotify));
                 }
             } catch ( NullReferenceException ) {}
         }
         
-        public void UpdateFeed(Summa.Data.ISource feed) {
+        public void UpdateFeed(ISource feed) {
             updating_feed = feed;
             System.Threading.Thread updatethread = new System.Threading.Thread(UpdateFeedThread);
             updatethread.Start();
@@ -137,7 +140,7 @@ namespace Summa.Core {
         
         public bool ScheduledUpdate() {
             if ( !Updating &amp;&amp; should_automatic_update ) {
-                foreach ( Summa.Data.Feed feed in Summa.Data.Core.GetFeeds() ) {
+                foreach ( Feed feed in Feeds.GetFeeds() ) {
                     updating_queue.Enqueue(feed);
                 }
             
@@ -148,27 +151,27 @@ namespace Summa.Core {
             } else {
                 should_automatic_update = true;
                 
-                GLib.Timeout.Add(Summa.Core.Config.GlobalUpdateInterval, new GLib.TimeoutHandler(ScheduledUpdate));
+                GLib.Timeout.Add(Config.GlobalUpdateInterval, new GLib.TimeoutHandler(ScheduledUpdate));
                 
                 return false;
             }
         }
         
         private void AddFeedThread() {
-            Summa.Core.NotificationEventArgs fargs = new Summa.Core.NotificationEventArgs();
+            NotificationEventArgs fargs = new NotificationEventArgs();
             fargs.Message = &quot;Adding feed &quot;+adding_url;
             Gtk.Application.Invoke(this, fargs, OnNotify);
             
             try {
-                Summa.Data.Core.RegisterFeed(adding_url);
+                Feeds.RegisterFeed(adding_url);
                 
-                fargs = new Summa.Core.NotificationEventArgs();
+                fargs = new NotificationEventArgs();
                 fargs.Message = &quot;Successfully added feed &quot;+adding_url;
                 Gtk.Application.Invoke(this, fargs, OnNotify);
             } catch ( Exception e ) {
-                Summa.Core.Log.Exception(e);
+                Log.Exception(e);
                 
-                fargs = new Summa.Core.NotificationEventArgs();
+                fargs = new NotificationEventArgs();
                 fargs.Message = &quot;Adding feed &quot;+adding_url+&quot; failed&quot;;
                 Gtk.Application.Invoke(this, fargs, OnNotify);
             }</diff>
      <filename>src/Summa.Core.Updater.cs</filename>
    </modified>
    <modified>
      <diff>@@ -27,21 +27,25 @@ using System;
 using System.Collections;
 using System.Linq;
 
+using NewsKit;
+using Summa.Core;
+using Summa.Data;
+
 namespace Summa.Data {
     public class ItemEventArgs : EventArgs {
-        public Summa.Data.Item Item;
+        public Item Item;
         
         public ItemEventArgs() {}
     }
     
-    public class Feed : Summa.Data.ISource {
+    public class Feed : ISource {
         public string Name {
             get {
-                string[] feed = Summa.Core.Application.Database.GetFeed(Url);
+                string[] feed = Database.GetFeed(Url);
                 return feed[3];
             }
             set {
-                Summa.Core.Application.Database.ChangeFeedInfo(Url, &quot;name&quot;, value);
+                Database.ChangeFeedInfo(Url, &quot;name&quot;, value);
             }
         }
         private string url;
@@ -51,54 +55,54 @@ namespace Summa.Data {
         }
         public string Author {
             get {
-                string[] feed = Summa.Core.Application.Database.GetFeed(Url);
+                string[] feed = Database.GetFeed(Url);
                 return feed[4];
             }
             set {
-                Summa.Core.Application.Database.ChangeFeedInfo(Url, &quot;author&quot;, value);
+                Database.ChangeFeedInfo(Url, &quot;author&quot;, value);
             }
         }
         public string Subtitle {
             get {
-                string[] feed = Summa.Core.Application.Database.GetFeed(Url);
+                string[] feed = Database.GetFeed(Url);
                 return feed[5];
             }
             set {
-                Summa.Core.Application.Database.ChangeFeedInfo(Url, &quot;subtitle&quot;, value);
+                Database.ChangeFeedInfo(Url, &quot;subtitle&quot;, value);
             }
         }
         public string License {
             get {
-                string[] feed = Summa.Core.Application.Database.GetFeed(Url);
+                string[] feed = Database.GetFeed(Url);
                 return feed[7];
             }
             set {
-                Summa.Core.Application.Database.ChangeFeedInfo(Url, &quot;license&quot;, value);
+                Database.ChangeFeedInfo(Url, &quot;license&quot;, value);
             }
         }
         public string Image {
             get {
-                string[] feed = Summa.Core.Application.Database.GetFeed(Url);
+                string[] feed = Database.GetFeed(Url);
                 return feed[6];
             }
             set {
-                Summa.Core.Application.Database.ChangeFeedInfo(Url, &quot;image&quot;, value);
+                Database.ChangeFeedInfo(Url, &quot;image&quot;, value);
             }
         }
         public string Status {
             get {
-                string[] feed = Summa.Core.Application.Database.GetFeed(Url);
+                string[] feed = Database.GetFeed(Url);
                 return feed[10];
             }
             set {
-                Summa.Core.Application.Database.ChangeFeedInfo(Url, &quot;status&quot;, value);
+                Database.ChangeFeedInfo(Url, &quot;status&quot;, value);
             }
         }
         public ArrayList Tags {
             get {
-                string[] feed = Summa.Core.Application.Database.GetFeed(Url);
+                string[] feed = Database.GetFeed(Url);
                 string tags = feed[11];
-                ArrayList al = new System.Collections.ArrayList();
+                ArrayList al = new ArrayList();
                 foreach ( string tag in tags.Split(',') ) {
                     al.Add(tag);
                 }
@@ -114,12 +118,12 @@ namespace Summa.Data {
                 }
                 
                 string jtags = String.Join(&quot;,&quot;, tags);
-                Summa.Core.Application.Database.ChangeFeedInfo(Url, &quot;tags&quot;, jtags);
+                Database.ChangeFeedInfo(Url, &quot;tags&quot;, jtags);
             }
         }
         public Gdk.Pixbuf Favicon {
             get {
-                string[] feed = Summa.Core.Application.Database.GetFeed(Url);
+                string[] feed = Database.GetFeed(Url);
                 if ( feed[12] == &quot;&quot; ) {
                     return Gtk.IconTheme.Default.LookupIcon(&quot;feed-presence&quot;, 16, Gtk.IconLookupFlags.NoSvg).LoadIcon();
                 } else {
@@ -127,17 +131,17 @@ namespace Summa.Data {
                 }
             }
             set {
-                //Summa.Core.Application.Database.ChangeFeedInfo(Url, &quot;favicon&quot;, value);
+                //Database.ChangeFeedInfo(Url, &quot;favicon&quot;, value);
             }
         }
         
         public ArrayList Items {
             get {
-                ArrayList uris = Summa.Core.Application.Database.GetPosts(Url);
+                ArrayList uris = Database.GetPosts(Url);
                 ArrayList items = new ArrayList();
                 
                 foreach ( string[] item in uris ) {
-                    items.Add(new Summa.Data.Item(item[1], Url));
+                    items.Add(new Item(item[1], Url));
                 }
                 
                 return items;
@@ -148,7 +152,7 @@ namespace Summa.Data {
             get {
                 int count = 0;
                 
-                foreach (string[] item in Summa.Core.Application.Database.GetPosts(Url)) {
+                foreach (string[] item in Database.GetPosts(Url)) {
                     if ( item[8] == &quot;False&quot; ) {
                         count++;
                     }
@@ -159,7 +163,7 @@ namespace Summa.Data {
         
         public bool HasUnread {
             get {
-                foreach ( string[] item in Summa.Core.Application.Database.GetPosts(Url)) {
+                foreach ( string[] item in Database.GetPosts(Url)) {
                     if ( item[8] == &quot;False&quot; ) {
                         return true;
                     }
@@ -205,44 +209,60 @@ namespace Summa.Data {
         }
         
         public bool Update() {
-            NewsKit.IFeedParser parser;
-            
-            bool success = NewsKit.Core.ParseUri(Url, Summa.Core.Application.Database.GetFeed(Url)[9], out parser);
+            IFeedParser p;
+            bool success = Parsing.ParseUri(Url, Database.GetFeed(Url)[9], out p);
             if ( !success ) {
                 return false;
             }
             
-            parser.Items.Reverse();
-            bool update = false;
+            bool updated = false;
             
-            ArrayList urls = new ArrayList();
+            ArrayList urls_we_have = new ArrayList();
             
-            foreach ( string[] item in Summa.Core.Application.Database.GetPosts(Url)) {
-                urls.Add(item[1]);
+            foreach ( string[] item in Database.GetPosts(Url)) {
+                urls_we_have.Add(item[1]);
             }
             
-            foreach ( NewsKit.Item item in parser.Items ) {
-                if ( !urls.Contains(item.Uri) ) {
-                    update = true;
-                    Summa.Core.Application.Database.AddItem(Url, item.Title, item.Uri, item.Date, item.LastUpdated, item.Author, item.Tags, item.Contents, item.EncUri, &quot;False&quot;, &quot;False&quot;);
+            ArrayList items_to_add = new ArrayList();
+            foreach ( Item item in p.Items ) {
+                if ( !urls_we_have.Contains(item.Uri) ) {
+                    updated = true;
+                    
+                    items_to_add.Add(item);
+                } else {
+                    // we do this because otherwise we have to deal with feeds
+                    // like Cat and Girl, which have hundreds of items in 
+                    // them. Once we delete them (later in this function), we
+                    // end up adding them again on the next update, only to
+                    // delete them again. However, this means that items added
+                    // in-between old items aren't caught. This is a problem,
+                    // but it's rare enough that it doesn't really matter.
+                    break;
                 }
             }
             
-            if ( update ) {
-                // set the limit for the number of items we have at 100, but increase it by the number of flagged items so that they aren't dropped.
-                int limit = 100;
-                foreach ( string[] item in Summa.Core.Application.Database.GetPosts(Url) ) {
+            items_to_add.Reverse();
+            foreach ( Item item in items_to_add ) {
+                Database.AddItem(Url, item.Title, item.Uri, item.Date.ToString(), item.LastUpdated.ToString(), item.Author, item.Tags, item.Contents, item.EncUri, &quot;False&quot;, &quot;False&quot;);
+            }
+            
+            if ( updated ) {
+                // set the limit for the number of items we have at 100, 
+                // but increase it by the number of flagged items so that
+                // they aren't dropped.
+                int limit = Config.NumberOfItems;
+                foreach ( string[] item in Database.GetPosts(Url) ) {
                     if ( item[9] == &quot;True&quot; ) {
                         limit++;
                     }
                 }
                 
-                ArrayList del_items = Summa.Core.Application.Database.GetPosts(Url);
+                ArrayList del_items = Database.GetPosts(Url);
                 
                 foreach ( string[] item in del_items ) {
-                    if ( Summa.Core.Application.Database.GetPosts(Url).Count &gt; limit ) {
+                    if ( Database.GetPosts(Url).Count &gt; limit ) {
                         if ( item[9] == &quot;False&quot; ) {
-                            Summa.Core.Application.Database.DeleteItem(Url, item[1]);
+                            Database.DeleteItem(Url, item[1]);
                         }
                     } else {
                         break;
@@ -250,11 +270,11 @@ namespace Summa.Data {
                 }
             }
             
-            return update;
+            return updated;
         }
         
         public void MarkItemsRead() {
-            foreach (Summa.Data.Item item in Items) {
+            foreach (Item item in Items) {
                 item.Read = true;
             }
         }</diff>
      <filename>src/Summa.Data.Feed.cs</filename>
    </modified>
    <modified>
      <diff>@@ -26,6 +26,8 @@
 using System;
 using System.Collections;
 
+using Summa.Core;
+
 namespace Summa.Data {
     public interface ISource {
         string Name { get; set; }</diff>
      <filename>src/Summa.Data.ISource.cs</filename>
    </modified>
    <modified>
      <diff>@@ -25,27 +25,31 @@
 
 using System;
 
+using Summa.Core;
+using Summa.Data;
+
 namespace Summa.Data {
     public class Item {
         public string Title {
             get {
                 try {
-                    string[] item = Summa.Core.Application.Database.GetItem(FeedUri, Uri);
-                    return item[0];
+                    string[] item = Summa.Core.Database.GetItem(FeedUri, Uri);
+                    string hack = item[0].Replace(&quot;???&quot;, &quot;'&quot;);
+                    return hack;
                 } catch ( Exception e ) {
                     Summa.Core.Log.Exception(e);
                     return &quot;&quot;;
                 }
             }
             set {
-                Summa.Core.Application.Database.ChangeItemInfo(FeedUri, Uri, &quot;title&quot;, value);
+                Summa.Core.Database.ChangeItemInfo(FeedUri, Uri, &quot;title&quot;, value);
             }
         }
         public string Uri;
         public DateTime Date {
             get {
                 try {
-                    string[] item = Summa.Core.Application.Database.GetItem(FeedUri, Uri);
+                    string[] item = Summa.Core.Database.GetItem(FeedUri, Uri);
                     return Convert.ToDateTime(item[2]);
                 } catch ( Exception e ) {
                     Summa.Core.Log.Exception(e);
@@ -53,13 +57,13 @@ namespace Summa.Data {
                 }
             }
             set {
-                Summa.Core.Application.Database.ChangeItemInfo(FeedUri, Uri, &quot;date&quot;, value.ToString());
+                Summa.Core.Database.ChangeItemInfo(FeedUri, Uri, &quot;date&quot;, value.ToString());
             }
         }
         public string LastUpdated {
             get {
                 try {
-                    string[] item = Summa.Core.Application.Database.GetItem(FeedUri, Uri);
+                    string[] item = Summa.Core.Database.GetItem(FeedUri, Uri);
                     return item[3];
                 } catch ( Exception e ) {
                     Summa.Core.Log.Exception(e);
@@ -67,13 +71,13 @@ namespace Summa.Data {
                 }
             }
             set {
-                Summa.Core.Application.Database.ChangeItemInfo(FeedUri, Uri, &quot;last_updated&quot;, value);
+                Summa.Core.Database.ChangeItemInfo(FeedUri, Uri, &quot;last_updated&quot;, value);
             }
         }
         public string Author {
             get {
                 try {
-                    string[] item = Summa.Core.Application.Database.GetItem(FeedUri, Uri);
+                    string[] item = Summa.Core.Database.GetItem(FeedUri, Uri);
                     return item[4];
                 } catch ( Exception e ) {
                     Summa.Core.Log.Exception(e);
@@ -81,13 +85,13 @@ namespace Summa.Data {
                 }
             }
             set {
-                Summa.Core.Application.Database.ChangeItemInfo(FeedUri, Uri, &quot;author&quot;, value);
+                Summa.Core.Database.ChangeItemInfo(FeedUri, Uri, &quot;author&quot;, value);
             }
         }
         public string Tags {
             get {
                 try {
-                    string[] item = Summa.Core.Application.Database.GetItem(FeedUri, Uri);
+                    string[] item = Summa.Core.Database.GetItem(FeedUri, Uri);
                     return item[5];
                 } catch ( Exception e ) {
                     Summa.Core.Log.Exception(e);
@@ -95,27 +99,29 @@ namespace Summa.Data {
                 }
             }
             set {
-                Summa.Core.Application.Database.ChangeItemInfo(FeedUri, Uri, &quot;title&quot;, value);
+                Summa.Core.Database.ChangeItemInfo(FeedUri, Uri, &quot;title&quot;, value);
             }
         }
         public string Contents {
             get {
                 try {
-                    string[] item = Summa.Core.Application.Database.GetItem(FeedUri, Uri);
-                    return item[6];
+                    string[] item = Summa.Core.Database.GetItem(FeedUri, Uri);
+                    string hack = item[6].Replace(&quot;???&quot;, &quot;'&quot;);
+                    hack = hack.Replace(&quot;??&quot;, &quot;&quot;);
+                    return hack;
                 } catch ( Exception e ) {
                     Summa.Core.Log.Exception(e);
                     return &quot;&quot;;
                 }
             }
             set {
-                Summa.Core.Application.Database.ChangeItemInfo(FeedUri, Uri, &quot;content&quot;, value);
+                Summa.Core.Database.ChangeItemInfo(FeedUri, Uri, &quot;content&quot;, value);
             }
         }
         public string EncUri {
             get {
                 try {
-                    string[] item = Summa.Core.Application.Database.GetItem(FeedUri, Uri);
+                    string[] item = Summa.Core.Database.GetItem(FeedUri, Uri);
                     return item[7];
                 } catch ( Exception e ) {
                     Summa.Core.Log.Exception(e);
@@ -123,13 +129,13 @@ namespace Summa.Data {
                 }
             }
             set {
-                Summa.Core.Application.Database.ChangeItemInfo(FeedUri, Uri, &quot;encuri&quot;, value);
+                Summa.Core.Database.ChangeItemInfo(FeedUri, Uri, &quot;encuri&quot;, value);
             }
         }
         public bool Read {
             get {
                 try {
-                    string[] item = Summa.Core.Application.Database.GetItem(FeedUri, Uri);
+                    string[] item = Summa.Core.Database.GetItem(FeedUri, Uri);
                     string val = item[8];
                     if ( val == &quot;True&quot; ) {
                         return true;
@@ -143,16 +149,16 @@ namespace Summa.Data {
             }
             set {
                 if ( value == true ) {
-                    Summa.Core.Application.Database.ChangeItemInfo(FeedUri, Uri, &quot;read&quot;, &quot;True&quot;);
+                    Summa.Core.Database.ChangeItemInfo(FeedUri, Uri, &quot;read&quot;, &quot;True&quot;);
                 } else {
-                    Summa.Core.Application.Database.ChangeItemInfo(FeedUri, Uri, &quot;read&quot;, &quot;False&quot;);
+                    Summa.Core.Database.ChangeItemInfo(FeedUri, Uri, &quot;read&quot;, &quot;False&quot;);
                 }
             }
         }
         public bool Flagged {
             get {
                 try {
-                    string[] item = Summa.Core.Application.Database.GetItem(FeedUri, Uri);
+                    string[] item = Summa.Core.Database.GetItem(FeedUri, Uri);
                     string val = item[9];
                     if ( val == &quot;True&quot; ) {
                         return true;
@@ -166,9 +172,9 @@ namespace Summa.Data {
             }
             set {
                 if ( value == true ) {
-                    Summa.Core.Application.Database.ChangeItemInfo(FeedUri, Uri, &quot;flagged&quot;, &quot;True&quot;);
+                    Summa.Core.Database.ChangeItemInfo(FeedUri, Uri, &quot;flagged&quot;, &quot;True&quot;);
                 } else {
-                    Summa.Core.Application.Database.ChangeItemInfo(FeedUri, Uri, &quot;flagged&quot;, &quot;False&quot;);
+                    Summa.Core.Database.ChangeItemInfo(FeedUri, Uri, &quot;flagged&quot;, &quot;False&quot;);
                 }
             }
         }</diff>
      <filename>src/Summa.Data.Item.cs</filename>
    </modified>
    <modified>
      <diff>@@ -26,6 +26,11 @@
 using System;
 using System.Collections;
 
+using Gtk;
+
+using Summa.Core;
+using Summa.Data;
+
 namespace Summa.Data {
     // simple dummy implementation of Search, only powerful enough for things
     // like &quot;get all unread items.&quot; Real search support, with multiple params
@@ -86,14 +91,14 @@ namespace Summa.Data {
         }
         
         public Gdk.Pixbuf Favicon {
-            get { return Gtk.IconTheme.Default.LookupIcon(&quot;system-search&quot;, (int)Gtk.IconSize.Menu, Gtk.IconLookupFlags.NoSvg).LoadIcon(); }
+            get { return IconTheme.Default.LookupIcon(&quot;system-search&quot;, (int)IconSize.Menu, IconLookupFlags.NoSvg).LoadIcon(); }
             set {}
         }
         
         public int UnreadCount {
             get {
                 int count = 0;
-                foreach ( Summa.Data.Item item in Items ) {
+                foreach ( Item item in Items ) {
                     if ( !item.Read ) {
                         count++;
                     }
@@ -113,11 +118,11 @@ namespace Summa.Data {
                 ArrayList items = new ArrayList();
                 
                 foreach ( ArrayList term in terms ) {
-                    foreach ( Summa.Data.Feed feed in Summa.Data.Core.GetFeeds() ) {
+                    foreach ( Feed feed in Feeds.GetFeeds() ) {
                         if ( (string)term[0] == &quot;read&quot; &amp;&amp; (string)term[1] == &quot;False&quot; &amp;&amp; !feed.HasUnread ) {
                             continue;
                         } else {
-                            foreach ( Summa.Data.Item item in feed.Items ) {
+                            foreach ( Item item in feed.Items ) {
                                 if ( (string)term[0] == &quot;read&quot; ) {
                                     if ( (string)term[1] == &quot;True&quot; &amp;&amp; item.Read ) {
                                         items.Add(item);
@@ -151,7 +156,7 @@ namespace Summa.Data {
         public bool Update() { return false; }
         
         public void MarkItemsRead() {
-            foreach ( Summa.Data.Item item in Items ) {
+            foreach ( Item item in Items ) {
                 item.Read = true;
             }
         }</diff>
      <filename>src/Summa.Data.Search.cs</filename>
    </modified>
    <modified>
      <diff>@@ -27,6 +27,9 @@ using System;
 using Gtk;
 using Gdk;
 
+using Summa.Core;
+using Summa.Gui;
+
 namespace Summa.Gui {
     public class AboutDialog : Gtk.AboutDialog {
         public AboutDialog() {
@@ -41,16 +44,16 @@ namespace Summa.Gui {
             authors[1] = &quot;Will Farrington&quot;;
             
             Authors = authors;
-            Comments = &quot;Aggregate and read RSS feeds&quot;;
+            Comments = StringCatalog.AboutComments;
             
-            IconTheme i = Gtk.IconTheme.Default;
+            IconTheme i = IconTheme.Default;
             
-            Gdk.Pixbuf image_window = i.LoadIcon(&quot;add&quot;, 0, Gtk.IconLookupFlags.NoSvg);
+            Pixbuf image_window = i.LoadIcon(&quot;add&quot;, 0, IconLookupFlags.NoSvg);
             
             LogoIconName = &quot;summa&quot;;
             Icon = image_window;
             
-            Response += new Gtk.ResponseHandler(OnHide);
+            Response += new ResponseHandler(OnHide);
         }
         
         private void OnHide(object obj, ResponseArgs args) {</diff>
      <filename>src/Summa.Gui.AboutDialog.cs</filename>
    </modified>
    <modified>
      <diff>@@ -28,29 +28,33 @@ using System;
 using System.Collections;
 using Gtk;
 
+using Summa.Core;
+using Summa.Data;
+using Summa.Gui;
+
 namespace Summa.Actions {
     public class AddAction : Gtk.Action {
-        private Summa.Gui.Browser browser;
+        private Browser browser;
         
-        public AddAction(Summa.Gui.Browser browser) : base(&quot;Add&quot;, &quot;_Add&quot;) {
+        public AddAction(Browser browser) : base(&quot;Add&quot;, &quot;_Add&quot;) {
             this.browser = browser;
             
             Tooltip = &quot;Create a new feed&quot;;
-            StockId = Gtk.Stock.Add;
+            StockId = Stock.Add;
             Activated += NewAddFeedDialog;
         }
         
         public void NewAddFeedDialog(object obj, EventArgs args) {
-            Summa.Gui.AddFeedDialog add_dialog = new Summa.Gui.AddFeedDialog();
+            AddFeedDialog add_dialog = new AddFeedDialog();
             add_dialog.TransientFor = browser;
             add_dialog.Show();
         }
     }
     
     public class ImportAction : Gtk.Action {
-        private Summa.Gui.Browser browser;
+        private Browser browser;
         
-        public ImportAction(Summa.Gui.Browser browser) : base(&quot;Import&quot;, &quot;_Import&quot;) {
+        public ImportAction(Browser browser) : base(&quot;Import&quot;, &quot;_Import&quot;) {
             this.browser = browser;
             
             Tooltip = &quot;Import data&quot;;
@@ -58,16 +62,16 @@ namespace Summa.Actions {
         }
         
         public void Import(object obj, EventArgs args) {
-            Summa.Gui.FirstRun fr = new Summa.Gui.FirstRun();
+            FirstRun fr = new FirstRun();
             fr.TransientFor = browser;
             fr.ShowAll();
         }
     }
     
     public class UpdateAllAction : Gtk.Action {
-        public UpdateAllAction(Summa.Gui.Browser browser) : base(&quot;Update_all&quot;, &quot;_Update All&quot;) {
+        public UpdateAllAction(Browser browser) : base(&quot;Update_all&quot;, &quot;_Update All&quot;) {
             Tooltip = &quot;Update all feeds&quot;;
-            StockId = Gtk.Stock.Refresh;
+            StockId = Stock.Refresh;
             Activated += UpdateAll;
         }
         
@@ -77,13 +81,13 @@ namespace Summa.Actions {
     }
     
     public class PrintAction : Gtk.Action {
-        private Summa.Gui.Browser browser;
+        private Browser browser;
         
-        public PrintAction(Summa.Gui.Browser browser) : base(&quot;Print&quot;, &quot;_Print&quot;) {
+        public PrintAction(Browser browser) : base(&quot;Print&quot;, &quot;_Print&quot;) {
             this.browser = browser;
             
             Tooltip = &quot;_Print the currently selected item&quot;;
-            StockId = Gtk.Stock.Print;
+            StockId = Stock.Print;
             Activated += Print;
             Sensitive = false;
         }
@@ -100,9 +104,9 @@ namespace Summa.Actions {
     }
     
     public class PrintPreviewAction : Gtk.Action {
-        public PrintPreviewAction(Summa.Gui.Browser browser) : base(&quot;Print_preview&quot;, &quot;Print Previe_w&quot;) {
+        public PrintPreviewAction(Browser browser) : base(&quot;Print_preview&quot;, &quot;Print Previe_w&quot;) {
             Tooltip = &quot;Show a preview of the printed document&quot;;
-            StockId = Gtk.Stock.PrintPreview;
+            StockId = Stock.PrintPreview;
             Activated += PrintPreview;
             Sensitive = false;
         }
@@ -112,7 +116,7 @@ namespace Summa.Actions {
     }
     
     public class EmailLinkAction : Gtk.Action {
-        public EmailLinkAction(Summa.Gui.Browser browser) : base(&quot;Email_link&quot;, &quot;_Email&quot;) {
+        public EmailLinkAction(Browser browser) : base(&quot;Email_link&quot;, &quot;_Email&quot;) {
             Tooltip = &quot;Email a copy of the selected item&quot;;
             Activated += EmailLink;
             Sensitive = false;
@@ -123,14 +127,14 @@ namespace Summa.Actions {
     }
     
     public class BookmarkAction : Gtk.Action {
-        private Summa.Gui.Browser browser;
-        private Summa.Core.IBookmarker bookmarker;
+        private Browser browser;
+        private IBookmarker bookmarker;
         
-        public BookmarkAction(Summa.Gui.Browser browser) : base(&quot;Bookmark&quot;, &quot;_Bookmark&quot;) {
+        public BookmarkAction(Browser browser) : base(&quot;Bookmark&quot;, &quot;_Bookmark&quot;) {
             this.browser = browser;
             
-            IconSet bookmark_iconset = new Gtk.IconSet();
-            IconSource bookmark_iconsource = new Gtk.IconSource();
+            IconSet bookmark_iconset = new IconSet();
+            IconSource bookmark_iconsource = new IconSource();
             bookmark_iconsource.IconName = &quot;bookmark-new&quot;;
             bookmark_iconset.AddSource(bookmark_iconsource);
             browser.factory.Add(&quot;summa-bookmark-new&quot;, bookmark_iconset);
@@ -139,12 +143,12 @@ namespace Summa.Actions {
             StockId = &quot;summa-bookmark-new&quot;;
             Activated += Bookmark;
             
-            switch(Summa.Core.Config.Bookmarker) {
+            switch(Config.Bookmarker) {
                 case &quot;Native&quot;:
-                    bookmarker = new Summa.Gui.NativeBookmarker();
+                    bookmarker = new NativeBookmarker();
                     break;
                 case &quot;Dieu&quot;:
-                    bookmarker = new Summa.Gui.DieuBookmarker();
+                    bookmarker = new DieuBookmarker();
                     break;
             }
         }
@@ -163,9 +167,9 @@ namespace Summa.Actions {
     }
     
     public class NewTabAction : Gtk.Action {
-        private Summa.Gui.Browser browser;
+        private Browser browser;
         
-        public NewTabAction(Summa.Gui.Browser browser) : base(&quot;New_tab&quot;, &quot;Open in a New _Tab&quot;) {
+        public NewTabAction(Browser browser) : base(&quot;New_tab&quot;, &quot;Open in a New _Tab&quot;) {
             this.browser = browser;
             
             Tooltip = &quot;Open the current item in a new tab&quot;;
@@ -179,26 +183,26 @@ namespace Summa.Actions {
     }
     
     public class NewWindowAction : Gtk.Action {
-        public NewWindowAction(Summa.Gui.Browser browser) : base(&quot;New_window&quot;, &quot;New _Window&quot;) {
+        public NewWindowAction(Browser browser) : base(&quot;New_window&quot;, &quot;New _Window&quot;) {
             Tooltip = &quot;Open a new window&quot;;
             Activated += NewWindow;
         }
         
         public void NewWindow(object obj, EventArgs args) {
-            Window b = new Summa.Gui.Browser();
+            Window b = new Browser();
             Summa.Core.Application.Browsers.Add(b);
             b.ShowAll();
         }
     }
     
     public class CloseWindowAction : Gtk.Action {
-        private Summa.Gui.Browser browser;
+        private Browser browser;
         
-        public CloseWindowAction(Summa.Gui.Browser browser) : base(&quot;Close_window&quot;, &quot;_Close Window&quot;) {
+        public CloseWindowAction(Browser browser) : base(&quot;Close_window&quot;, &quot;_Close Window&quot;) {
             this.browser = browser;
             
             Tooltip = &quot;Close this window&quot;;
-            StockId = Gtk.Stock.Close;
+            StockId = Stock.Close;
             Activated += CloseWindow;
         }
         
@@ -208,9 +212,9 @@ namespace Summa.Actions {
     }
     
     public class CopyAction : Gtk.Action {
-        public CopyAction(Summa.Gui.Browser browser) : base(&quot;Copy&quot;, &quot;_Copy&quot;) {
+        public CopyAction(Browser browser) : base(&quot;Copy&quot;, &quot;_Copy&quot;) {
             Tooltip = &quot;Copy&quot;;
-            StockId = Gtk.Stock.Copy;
+            StockId = Stock.Copy;
             Activated += Copy;
             Sensitive = false;
         }
@@ -220,7 +224,7 @@ namespace Summa.Actions {
     }
     
     public class SelectAllAction : Gtk.Action {
-        public SelectAllAction(Summa.Gui.Browser browser) : base(&quot;Select_all&quot;, &quot;_Select All Text&quot;) {
+        public SelectAllAction(Browser browser) : base(&quot;Select_all&quot;, &quot;_Select All Text&quot;) {
             Tooltip = &quot;Select all text&quot;;
             Activated += SelectAll;
             Sensitive = false;
@@ -231,9 +235,9 @@ namespace Summa.Actions {
     }
     
     public class FindAction : Gtk.Action {
-        public FindAction(Summa.Gui.Browser browser) : base(&quot;Find&quot;, &quot;_Find...&quot;) {
+        public FindAction(Browser browser) : base(&quot;Find&quot;, &quot;_Find...&quot;) {
             Tooltip = &quot;Find an item&quot;;
-            StockId = Gtk.Stock.Find;
+            StockId = Stock.Find;
             Activated += Find;
             Sensitive = false;
         }
@@ -243,31 +247,31 @@ namespace Summa.Actions {
     }
     
     public class PreferencesAction : Gtk.Action {
-        private Summa.Gui.Browser browser;
+        private Browser browser;
         
-        public PreferencesAction(Summa.Gui.Browser browser) : base(&quot;Preferences&quot;, &quot;_Preferences&quot;) {
+        public PreferencesAction(Browser browser) : base(&quot;Preferences&quot;, &quot;_Preferences&quot;) {
             this.browser = browser;
             
             Tooltip = &quot;Preferences for Summa&quot;;
-            StockId = Gtk.Stock.Preferences;
+            StockId = Stock.Preferences;
             Activated += ShowConfigDialog;
         }
         
         public void ShowConfigDialog(object obj, EventArgs args) {
-            Window w = new Summa.Gui.ConfigDialog();
+            Window w = new ConfigDialog();
             w.TransientFor = browser;
             w.ShowAll();
         }
     }
     
     public class UpdateAction : Gtk.Action {
-        private Summa.Gui.Browser browser;
+        private Browser browser;
         
-        public UpdateAction(Summa.Gui.Browser browser) : base(&quot;Update&quot;, &quot;_Update Feed&quot;) {
+        public UpdateAction(Browser browser) : base(&quot;Update&quot;, &quot;_Update Feed&quot;) {
             this.browser = browser;
             
             Tooltip = &quot;Update selected feed&quot;;
-            StockId = Gtk.Stock.Refresh;
+            StockId = Stock.Refresh;
             Activated += Update;
         }
         
@@ -288,13 +292,13 @@ namespace Summa.Actions {
     }
     
     public class MarkReadAction : Gtk.Action {
-        private Summa.Gui.Browser browser;
+        private Browser browser;
         
-        public MarkReadAction(Summa.Gui.Browser browser) : base(&quot;Mark_read&quot;, &quot;_Mark Read&quot;) {
+        public MarkReadAction(Browser browser) : base(&quot;Mark_read&quot;, &quot;_Mark Read&quot;) {
             this.browser = browser;
             
             Tooltip = &quot;Mark all items in the selected feed as read&quot;;
-            StockId = Gtk.Stock.Apply;
+            StockId = Stock.Apply;
             Activated += MarkAllItemsRead;
         }
         
@@ -306,19 +310,19 @@ namespace Summa.Actions {
     }
     
     public class DeleteAction : Gtk.Action {
-        private Summa.Gui.Browser browser;
+        private Browser browser;
         
-        public DeleteAction(Summa.Gui.Browser browser) : base(&quot;Delete&quot;, &quot;_Delete Feed&quot;) {
+        public DeleteAction(Browser browser) : base(&quot;Delete&quot;, &quot;_Delete Feed&quot;) {
             this.browser = browser;
             
             Tooltip = &quot;Delete the selected feed&quot;;
-            StockId = Gtk.Stock.Delete;
+            StockId = Stock.Delete;
             Activated += DeleteFeed;
         }
         
         public void DeleteFeed(object obj, EventArgs args) {
             if ( browser.FeedView.HasSelected ) {
-                Window del = new Summa.Gui.DeleteConfirmationDialog(browser.curfeed);
+                Window del = new DeleteConfirmationDialog(browser.curfeed);
                 del.TransientFor = browser;
                 del.ShowAll();
             }
@@ -326,19 +330,19 @@ namespace Summa.Actions {
     }
     
     public class PropertiesAction : Gtk.Action {
-        private Summa.Gui.Browser browser;
+        private Browser browser;
         
-        public PropertiesAction(Summa.Gui.Browser browser) : base(&quot;Properties&quot;, &quot;_Properties&quot;) {
+        public PropertiesAction(Browser browser) : base(&quot;Properties&quot;, &quot;_Properties&quot;) {
             this.browser = browser;
             
             Tooltip = &quot;Properties of the selected feed&quot;;
-            StockId = Gtk.Stock.Properties;
+            StockId = Stock.Properties;
             Activated += ShowPropertiesDialog;
         }
         
         public void ShowPropertiesDialog(object obj, EventArgs args) {
             if ( browser.FeedView.HasSelected ) {
-                Window dialog = new Summa.Gui.FeedPropertiesDialog(browser.FeedView.Selected);
+                Window dialog = new FeedPropertiesDialog(browser.FeedView.Selected);
                 dialog.TransientFor = browser;
                 dialog.ShowAll();
             }
@@ -346,9 +350,9 @@ namespace Summa.Actions {
     }
     
     public class TagsAction : Gtk.Action {
-        private Summa.Gui.Browser browser;
+        private Browser browser;
         
-        public TagsAction(Summa.Gui.Browser browser) : base(&quot;Tags&quot;, &quot;Edit Feed _Tags&quot;) {
+        public TagsAction(Browser browser) : base(&quot;Tags&quot;, &quot;Edit Feed _Tags&quot;) {
             this.browser = browser;
             
             Tooltip = &quot;Edit the tags of your feeds by tag&quot;;
@@ -356,20 +360,20 @@ namespace Summa.Actions {
         }
         
         public void ShowTagsWindow(object obj, EventArgs args) {
-            Window dialog = new Summa.Gui.TagWindow();
+            Window dialog = new TagWindow();
             dialog.TransientFor = browser;
             dialog.ShowAll();
         }
     }
     
     public class ZoomInAction : Gtk.Action {
-        private Summa.Gui.Browser browser;
+        private Browser browser;
         
-        public ZoomInAction(Summa.Gui.Browser browser) : base(&quot;ZoomIn&quot;, &quot;Zoom _In&quot;) {
+        public ZoomInAction(Browser browser) : base(&quot;ZoomIn&quot;, &quot;Zoom _In&quot;) {
             this.browser = browser;
             
             Tooltip = &quot;Increase text size&quot;;
-            StockId = Gtk.Stock.ZoomIn;
+            StockId = Stock.ZoomIn;
             Activated += ZoomIn;
         }
         
@@ -385,13 +389,13 @@ namespace Summa.Actions {
     }
     
     public class ZoomOutAction : Gtk.Action {
-        private Summa.Gui.Browser browser;
+        private Browser browser;
         
-        public ZoomOutAction(Summa.Gui.Browser browser) : base(&quot;ZoomOut&quot;, &quot;Zoom _Out&quot;) {
+        public ZoomOutAction(Browser browser) : base(&quot;ZoomOut&quot;, &quot;Zoom _Out&quot;) {
             this.browser = browser;
             
             Tooltip = &quot;Decrease text size&quot;;
-            StockId = Gtk.Stock.ZoomOut;
+            StockId = Stock.ZoomOut;
             Activated += ZoomOut;
         }
         
@@ -401,7 +405,7 @@ namespace Summa.Actions {
         
         public void CheckShouldSensitive() {
             if ( browser.ItemView.HasSelected ) {
-                if ( Summa.Core.Config.DefaultZoomLevel != 3 ) {
+                if ( Config.DefaultZoomLevel != 3 ) {
                     Sensitive = true;
                 } else {
                     Sensitive = false;
@@ -410,8 +414,8 @@ namespace Summa.Actions {
         }
     }
     
-    public class LoadImagesAction : Gtk.ToggleAction {
-        public LoadImagesAction(Summa.Gui.Browser browser) : base(&quot;LoadImages&quot;, &quot;_Load Images&quot;, null, null) {
+    public class LoadImagesAction : ToggleAction {
+        public LoadImagesAction(Browser browser) : base(&quot;LoadImages&quot;, &quot;_Load Images&quot;, null, null) {
             Tooltip = &quot;Load images in items&quot;;
             Toggled += LoadImages;
             
@@ -423,8 +427,8 @@ namespace Summa.Actions {
         }
     }
     
-    public class HideReadAction : Gtk.ToggleAction {
-        public HideReadAction(Summa.Gui.Browser browser) : base(&quot;Hide_read&quot;, &quot;_Hide Read Items&quot;, null, null) {
+    public class HideReadAction : ToggleAction {
+        public HideReadAction(Browser browser) : base(&quot;Hide_read&quot;, &quot;_Hide ReadSumma.Data.Items&quot;, null, null) {
             Tooltip = &quot;Hide read items in the item list&quot;;
             Toggled += HideRead;
             
@@ -437,13 +441,13 @@ namespace Summa.Actions {
     }
     
     public class NextItemAction : Gtk.Action {
-        private Summa.Gui.Browser browser;
+        private Browser browser;
         
-        public NextItemAction(Summa.Gui.Browser browser) : base(&quot;Next_item&quot;, &quot;_Next Item&quot;) {
+        public NextItemAction(Browser browser) : base(&quot;Next_item&quot;, &quot;_NextSumma.Data.Item&quot;) {
             this.browser = browser;
             
             Tooltip = &quot;Go to next unread item&quot;;
-            StockId = Gtk.Stock.GoForward;
+            StockId = Stock.GoForward;
             Activated += GoToNextItem;
         }
         
@@ -458,7 +462,7 @@ namespace Summa.Actions {
                     browser.ItemView.GoToPreviousItem();
                     browser.UpdateHtmlview();
                 } else {
-                    Summa.Core.Notifier.Notify(&quot;There are no more unread items.&quot;);
+                    Notifier.Notify(&quot;There are no more unread items.&quot;);
                 }
             } else {
                 browser.UpdateHtmlview();
@@ -467,13 +471,13 @@ namespace Summa.Actions {
     }
     
     public class PreviousItemAction : Gtk.Action {
-        private Summa.Gui.Browser browser;
+        private Browser browser;
         
-        public PreviousItemAction(Summa.Gui.Browser browser) : base(&quot;Previous_item&quot;, &quot;_Previous Item&quot;) {
+        public PreviousItemAction(Browser browser) : base(&quot;Previous_item&quot;, &quot;_PreviousSumma.Data.Item&quot;) {
             this.browser = browser;
             
             Tooltip = &quot;Go to the previous item&quot;;
-            StockId = Gtk.Stock.GoBack;
+            StockId = Stock.GoBack;
             Activated += GoToPreviousItem;
         }
         
@@ -486,10 +490,10 @@ namespace Summa.Actions {
     }
     
     public class FlagAction : Gtk.Action {
-        private Summa.Gui.Browser browser;
+        private Browser browser;
         private Summa.Data.Item item;
         
-        public FlagAction(Summa.Gui.Browser browser) : base(&quot;Flag_item&quot;, &quot;Flag This Item&quot;) {
+        public FlagAction(Browser browser) : base(&quot;Flag_item&quot;, &quot;Flag This Item&quot;) {
             this.browser = browser;
             
             Tooltip = &quot;Flag/unflag this item&quot;;
@@ -505,9 +509,9 @@ namespace Summa.Actions {
             this.item = item;
             
             if ( item.Flagged ) {
-                Label = &quot;Unflag this item&quot;;
+                Label = &quot;Unflag This Item&quot;;
             } else {
-                Label = &quot;Flag this item&quot;;
+                Label = &quot;Flag This Item&quot;;
             }
             
             Sensitive = true;
@@ -515,10 +519,10 @@ namespace Summa.Actions {
     }
     
     public class UnreadAction : Gtk.Action {
-        private Summa.Gui.Browser browser;
+        private Browser browser;
         private Summa.Data.Item item;
         
-        public UnreadAction(Summa.Gui.Browser browser) : base(&quot;Read_item&quot;, &quot;Mark As Unread&quot;) {
+        public UnreadAction(Browser browser) : base(&quot;Read_item&quot;, &quot;Mark As Unread&quot;) {
             this.browser = browser;
             
             Tooltip = &quot;Mark this item as unread/read&quot;;
@@ -551,21 +555,21 @@ namespace Summa.Actions {
     }
     
     public class EnclosureAction : Gtk.Action {
-        private Summa.Gui.Browser browser;
-        private Summa.Core.IMediaPlayer mediaplayer;
+        private Browser browser;
+        private IMediaPlayer mediaplayer;
         
-        public EnclosureAction(Summa.Gui.Browser browser) : base(&quot;Play_pause&quot;, &quot;_Play&quot;) {
+        public EnclosureAction(Browser browser) : base(&quot;Play_pause&quot;, &quot;_Play&quot;) {
             this.browser = browser;
             
             Tooltip = &quot;Play or pause the media enclosed&quot;;
-            StockId = Gtk.Stock.MediaPlay;
+            StockId = Stock.MediaPlay;
             Activated += Play;
             
-            mediaplayer = new Summa.Gui.TotemMediaPlayer();
+            mediaplayer = new TotemMediaPlayer();
         }
         
         public void Play(object obj, EventArgs args) {
-            if ( browser.play_action.StockId == Gtk.Stock.MediaPause ) {
+            if ( browser.play_action.StockId == Stock.MediaPause ) {
                 mediaplayer.Pause();
                 SetToPlay();
             } else {
@@ -584,19 +588,19 @@ namespace Summa.Actions {
         
         public void SetToPlay() {
             Label = &quot;_Play&quot;;
-            StockId = Gtk.Stock.MediaPlay;
+            StockId = Stock.MediaPlay;
         }
         
         public void SetToPause() {
             Label = &quot;_Pause&quot;;
-            StockId = Gtk.Stock.MediaPause;
+            StockId = Stock.MediaPause;
         }
     }
     
     public class SaveEnclosureAction : Gtk.Action {
-        public SaveEnclosureAction(Summa.Gui.Browser browser) : base(&quot;Save_enclosed&quot;, &quot;_Save Enclosed Media&quot;) {
+        public SaveEnclosureAction(Browser browser) : base(&quot;Save_enclosed&quot;, &quot;_Save Enclosed Media&quot;) {
             Tooltip = &quot;Save the enclosed media&quot;;
-            StockId = Gtk.Stock.Save;
+            StockId = Stock.Save;
             Activated += Save;
             Sensitive = false;
         }
@@ -614,9 +618,9 @@ namespace Summa.Actions {
     }
     
     public class HelpAction : Gtk.Action {
-        public HelpAction(Summa.Gui.Browser browser) : base(&quot;Contents&quot;, &quot;_Contents&quot;) {
+        public HelpAction(Browser browser) : base(&quot;Contents&quot;, &quot;_Contents&quot;) {
             Tooltip = &quot;Get help&quot;;
-            StockId = Gtk.Stock.Help;
+            StockId = Stock.Help;
             Activated += Help;
             Sensitive = false;
         }
@@ -626,13 +630,13 @@ namespace Summa.Actions {
     }
     
     public class AboutAction : Gtk.Action {
-        private Summa.Gui.Browser browser;
+        private Browser browser;
         
-        public AboutAction(Summa.Gui.Browser browser) : base(&quot;About&quot;, &quot;_About&quot;) {
+        public AboutAction(Browser browser) : base(&quot;About&quot;, &quot;_About&quot;) {
             this.browser = browser;
             
             Tooltip = &quot;About&quot;;
-            StockId = Gtk.Stock.About;
+            StockId = Stock.About;
             Activated += ShowAbout;
         }
         
@@ -643,40 +647,40 @@ namespace Summa.Actions {
         }
     }
     
-    public class WidescreenViewAction : Gtk.RadioAction {
-        public WidescreenViewAction(Summa.Gui.Browser browser) : base(&quot;Wide_view&quot;, &quot;_Use Widescreen View&quot;, null, null, 0) {
+    public class WidescreenViewAction : RadioAction {
+        public WidescreenViewAction(Browser browser) : base(&quot;Wide_view&quot;, &quot;_Use Widescreen View&quot;, null, null, 0) {
             Tooltip = &quot;Use the widescreen view&quot;;
             Activated += SetView;
             
-            if ( Summa.Core.Config.WidescreenView ) {
+            if ( Config.WidescreenView ) {
                 CurrentValue = Value;
             }
             
-            //Summa.Core.Notifier.ViewChanged += OnViewChanged;
+            //Notifier.ViewChanged += OnViewChanged;
         }
         
         public void SetView(object obj, EventArgs args) {
             if ( Summa.Core.Application.Browsers.Count &gt; 0 ) {
-                Summa.Core.Config.WidescreenView = true;
+                Config.WidescreenView = true;
             }
         }
     }
     
-    public class NormalViewAction : Gtk.RadioAction {
-        public NormalViewAction(Summa.Gui.Browser browser) : base(&quot;Normal_view&quot;, &quot;_Use Normal View&quot;, null, null, 0) {
+    public class NormalViewAction : RadioAction {
+        public NormalViewAction(Browser browser) : base(&quot;Normal_view&quot;, &quot;_Use Normal View&quot;, null, null, 0) {
             Tooltip = &quot;Use the normal view&quot;;
             Activated += SetView;
             
-            if ( !Summa.Core.Config.WidescreenView ) {
+            if ( !Config.WidescreenView ) {
                 CurrentValue = Value;
             }
             
-            //Summa.Core.Notifier.ViewChanged += OnViewChanged;
+            //Notifier.ViewChanged += OnViewChanged;
         }
         
         public void SetView(object obj, EventArgs args) {
             if ( Summa.Core.Application.Browsers.Count &gt; 0 ) {
-                Summa.Core.Config.WidescreenView = false;
+                Config.WidescreenView = false;
             }
         }
     }</diff>
      <filename>src/Summa.Gui.Actions.cs</filename>
    </modified>
    <modified>
      <diff>@@ -26,20 +26,23 @@
 using System;
 using Gtk;
 
+using Summa.Core;
+using Summa.Gui;
+
 namespace Summa.Gui {
-    public class AddFeedDialog : Gtk.Window {
-        private Gtk.VBox vbox;
-        private Gtk.HBox hbox;
-        private Gtk.HButtonBox bbox;
-        private Gtk.Image image;
-        private Gtk.Table table;
-        private Gtk.Label label;
-        private Gtk.Entry entry;
-        private Gtk.Button cancel_button;
-        private Gtk.Button add_button;
+    public class AddFeedDialog : Window {
+        private VBox vbox;
+        private HBox hbox;
+        private HButtonBox bbox;
+        private Image image;
+        private Table table;
+        private Label label;
+        private Entry entry;
+        private Button cancel_button;
+        private Button add_button;
         
-        public AddFeedDialog() : base(Gtk.WindowType.Toplevel) {
-            Title = &quot;Add subscription&quot;;
+        public AddFeedDialog() : base(WindowType.Toplevel) {
+            Title = StringCatalog.AddFeedTitle;
             IconName = &quot;add&quot;;
             
             DeleteEvent += OnCancel;
@@ -47,37 +50,37 @@ namespace Summa.Gui {
             Resizable = false;
             BorderWidth = 6;
             
-            vbox = new Gtk.VBox(false, 6);
+            vbox = new VBox(false, 6);
             Add(vbox);
-            hbox = new Gtk.HBox(false, 6);
+            hbox = new HBox(false, 6);
             
             vbox.PackStart(hbox);
             
-            image = new Gtk.Image(Gtk.Stock.Add, Gtk.IconSize.Dialog);
+            image = new Image(Stock.Add, IconSize.Dialog);
             hbox.PackStart(image);
             
-            table = new Gtk.Table(2, 3, false);
+            table = new Table(2, 3, false);
             table.RowSpacing = 6;
             hbox.PackEnd(table);
             
-            label = new Gtk.Label();
-            label.Markup = &quot;&lt;b&gt;Enter the URL of the feed:&lt;/b&gt;&quot;;
+            label = new Label();
+            label.Markup = StringCatalog.AddFeedMessage;
             table.Attach(label, 1, 2, 0, 1);
             
-            entry = new Gtk.Entry();
+            entry = new Entry();
             entry.Activated += OnActivated;
             table.Attach(entry, 1, 2, 1, 2);
             
-            bbox = new Gtk.HButtonBox();
-            bbox.Layout = Gtk.ButtonBoxStyle.End;
+            bbox = new HButtonBox();
+            bbox.Layout = ButtonBoxStyle.End;
             bbox.Spacing = 6;
             vbox.PackEnd(bbox);
                 
-            cancel_button = new Gtk.Button(Gtk.Stock.Cancel);
+            cancel_button = new Button(Stock.Cancel);
             cancel_button.Clicked += new EventHandler(OnCancel);
             bbox.PackStart(cancel_button);
             
-            add_button = new Gtk.Button(Gtk.Stock.Add);
+            add_button = new Button(Stock.Add);
             add_button.Clicked += new EventHandler(OnAdd);
             add_button.GrabFocus();
             bbox.PackEnd(add_button);</diff>
      <filename>src/Summa.Gui.AddFeedDialog.cs</filename>
    </modified>
    <modified>
      <diff>@@ -27,22 +27,25 @@
 using System;
 using Gtk;
 
+using Summa.Core;
+using Summa.Gui;
+
 namespace Summa.Gui {
-    public class AddTagDialog : Gtk.Window {
-        private Summa.Gui.FeedPropertiesDialog propdialog;
-        private Summa.Gui.TagWindow twindow;
+    public class AddTagDialog : Window {
+        private FeedPropertiesDialog propdialog;
+        private TagWindow twindow;
         
-        private Gtk.VBox vbox;
-        private Gtk.HBox hbox;
-        private Gtk.HButtonBox bbox;
-        private Gtk.Image image;
-        private Gtk.Table table;
-        private Gtk.Label label;
-        private Gtk.Entry entry;
-        private Gtk.Button cancel_button;
-        private Gtk.Button add_button;
+        private VBox vbox;
+        private HBox hbox;
+        private HButtonBox bbox;
+        private Image image;
+        private Table table;
+        private Label label;
+        private Entry entry;
+        private Button cancel_button;
+        private Button add_button;
         
-        public AddTagDialog(Summa.Gui.FeedPropertiesDialog dialog) : base(Gtk.WindowType.Toplevel) {
+        public AddTagDialog(FeedPropertiesDialog dialog) : base(WindowType.Toplevel) {
             TransientFor = dialog;
             propdialog = dialog;
             
@@ -51,7 +54,7 @@ namespace Summa.Gui {
             add_button.Clicked += new EventHandler(OnAdd);
         }
         
-        public AddTagDialog(Summa.Gui.TagWindow dialog) : base(Gtk.WindowType.Toplevel) {
+        public AddTagDialog(TagWindow dialog) : base(WindowType.Toplevel) {
             TransientFor = dialog;
             twindow = dialog;
             
@@ -68,36 +71,36 @@ namespace Summa.Gui {
             Resizable = false;
             BorderWidth = 6;
             
-            vbox = new Gtk.VBox(false, 6);
+            vbox = new VBox(false, 6);
             Add(vbox);
-            hbox = new Gtk.HBox(false, 6);
+            hbox = new HBox(false, 6);
             
             vbox.PackStart(hbox);
             
-            image = new Gtk.Image(Gtk.Stock.Add, Gtk.IconSize.Dialog);
+            image = new Image(Stock.Add, IconSize.Dialog);
             hbox.PackStart(image);
             
-            table = new Gtk.Table(2, 3, false);
+            table = new Table(2, 3, false);
             table.RowSpacing = 6;
             hbox.PackEnd(table);
             
-            label = new Gtk.Label();
+            label = new Label();
             label.Markup = &quot;Enter the name of the tag:&quot;;
             table.Attach(label, 1, 2, 0, 1);
             
-            entry = new Gtk.Entry();
+            entry = new Entry();
             table.Attach(entry, 1, 2, 1, 2);
             
-            bbox = new Gtk.HButtonBox();
-            bbox.Layout = Gtk.ButtonBoxStyle.End;
+            bbox = new HButtonBox();
+            bbox.Layout = ButtonBoxStyle.End;
             bbox.Spacing = 6;
             vbox.PackEnd(bbox);
                 
-            cancel_button = new Gtk.Button(Gtk.Stock.Cancel);
+            cancel_button = new Button(Stock.Cancel);
             cancel_button.Clicked += new EventHandler(OnCancel);
             bbox.PackStart(cancel_button);
             
-            add_button = new Gtk.Button(Gtk.Stock.Add);
+            add_button = new Button(Stock.Add);
             bbox.PackEnd(add_button);
         }
         </diff>
      <filename>src/Summa.Gui.AddTagDialog.cs</filename>
    </modified>
    <modified>
      <diff>@@ -19,7 +19,7 @@
 // OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
 // HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-// WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// WHETHER IN AN Gtk.Action OF CONTRACT, TORT OR OTHERWISE, ARISING
 // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
 // OTHER DEALINGS IN THE SOFTWARE.
 
@@ -27,13 +27,17 @@ using System;
 using System.Collections;
 using Gtk;
 
+using Summa.Core;
+using Summa.Data;
+using Summa.Gui;
+
 namespace Summa.Gui {
-    public class Browser : Gtk.Window {
+    public class Browser : Window {
         public Gtk.ActionGroup action_group;
-        public Gtk.IconFactory factory;
-        public Gtk.UIManager uimanager;
+        public IconFactory factory;
+        public UIManager uimanager;
         
-        public Gtk.Table table;
+        public Table table;
         
         //menus
         public Gtk.Action file_menu;
@@ -71,8 +75,8 @@ namespace Summa.Gui {
         // item menu
         public Summa.Actions.ZoomInAction zoom_in_action;
         public Summa.Actions.ZoomOutAction zoom_out_action;
-        public Gtk.ToggleAction load_images_action;
-        public Gtk.ToggleAction hide_read_action;
+        public ToggleAction load_images_action;
+        public ToggleAction hide_read_action;
         public Gtk.Action next_item_action;
         public Gtk.Action prev_item_action;
         public Summa.Actions.FlagAction flag_action;
@@ -88,37 +92,37 @@ namespace Summa.Gui {
         public Gtk.Action help_action;
         public Gtk.Action about_action;
         
-        public Gtk.Widget menubar;
-        public Gtk.Widget toolbar;
+        public Widget menubar;
+        public Widget toolbar;
         
-        public Gtk.Paned main_paned;
-        public Gtk.Paned left_paned;
-        public Gtk.Paned right_paned;
+        public Paned main_paned;
+        public Paned left_paned;
+        public Paned right_paned;
         
-        public Summa.Gui.TagView TagView;
-        public Gtk.ScrolledWindow TagView_swin;
-        public Summa.Gui.FeedView FeedView;
-        public Gtk.ScrolledWindow FeedView_swin;
-        public Summa.Gui.ItemView ItemView;
-        public Gtk.ScrolledWindow ItemView_swin;
+        public TagView TagView;
+        public ScrolledWindow TagView_swin;
+        public FeedView FeedView;
+        public ScrolledWindow FeedView_swin;
+        public ItemView ItemView;
+        public ScrolledWindow ItemView_swin;
         
         public Summa.Data.Item item;
         
-        public Summa.Gui.ItemNotebook ItemNotebook;
+        public ItemNotebook ItemNotebook;
         
-        public Gtk.Button connection_button;
-        public Summa.Gui.NotificationBar StatusBar;
+        public Button connection_button;
+        public NotificationBar StatusBar;
         
         // the currently displayed feed
-        public Summa.Data.ISource curfeed;
+        public ISource curfeed;
         public Summa.Data.Item curitem;
         
-        public Browser() : base(Gtk.WindowType.Toplevel) {
+        public Browser() : base(WindowType.Toplevel) {
             Title = &quot;Summa&quot;;
             IconName = &quot;summa&quot;;
             
             action_group = new Gtk.ActionGroup(&quot;general&quot;);
-            factory = new Gtk.IconFactory();
+            factory = new IconFactory();
             factory.AddDefault();
             
             DestroyEvent += CloseWindow;
@@ -126,79 +130,79 @@ namespace Summa.Gui {
             
             SetUpActionGroup();
             
-            uimanager = new Gtk.UIManager();
+            uimanager = new UIManager();
             uimanager.InsertActionGroup(action_group, 0);
             AddAccelGroup(uimanager.AccelGroup);
             SetUpUimanager();
             
-            table = new Gtk.Table(5, 5, false);
+            table = new Table(5, 5, false);
             Add(table);
             
             menubar = uimanager.GetWidget(&quot;/MenuBar&quot;);
-            table.Attach(menubar, 0, 5, 0, 1, Gtk.AttachOptions.Fill, Gtk.AttachOptions.Fill, 0, 0);
+            table.Attach(menubar, 0, 5, 0, 1, AttachOptions.Fill, AttachOptions.Fill, 0, 0);
             
             toolbar = uimanager.GetWidget(&quot;/ToolBar&quot;);
-            table.Attach(toolbar, 0, 5, 1, 2, Gtk.AttachOptions.Fill, Gtk.AttachOptions.Fill, 0, 0);
+            table.Attach(toolbar, 0, 5, 1, 2, AttachOptions.Fill, AttachOptions.Fill, 0, 0);
             
-            main_paned = new Gtk.HPaned();
+            main_paned = new HPaned();
             table.Attach(main_paned, 0, 5, 2, 3);
             
-            left_paned = new Gtk.VPaned();
+            left_paned = new VPaned();
             main_paned.Pack1(left_paned, true, true);
             
-            TagView = new Summa.Gui.TagView();
+            TagView = new TagView();
             TagView.CursorChanged += new EventHandler(TagviewChanged);
-            TagView_swin = new Gtk.ScrolledWindow(new Gtk.Adjustment(0, 0, 0, 0, 0, 0), new Gtk.Adjustment(0, 0, 0, 0, 0, 0));
+            TagView_swin = new ScrolledWindow(new Adjustment(0, 0, 0, 0, 0, 0), new Adjustment(0, 0, 0, 0, 0, 0));
             TagView_swin.Add(TagView);
-            TagView_swin.ShadowType = Gtk.ShadowType.In;
-            TagView_swin.SetPolicy(Gtk.PolicyType.Automatic, Gtk.PolicyType.Automatic);
+            TagView_swin.ShadowType = ShadowType.In;
+            TagView_swin.SetPolicy(PolicyType.Automatic, PolicyType.Automatic);
             left_paned.Pack1(TagView_swin, true, true);
             
-            FeedView = new Summa.Gui.FeedView();
+            FeedView = new FeedView();
             FeedView.CursorChanged += new EventHandler(FeedviewChanged);
-            FeedView_swin = new Gtk.ScrolledWindow(new Gtk.Adjustment(0, 0, 0, 0, 0, 0), new Gtk.Adjustment(0, 0, 0, 0, 0, 0));
+            FeedView_swin = new ScrolledWindow(new Adjustment(0, 0, 0, 0, 0, 0), new Adjustment(0, 0, 0, 0, 0, 0));
             FeedView_swin.Add(FeedView);
-            FeedView_swin.ShadowType = Gtk.ShadowType.In;
-            FeedView_swin.SetPolicy(Gtk.PolicyType.Automatic, Gtk.PolicyType.Automatic);
+            FeedView_swin.ShadowType = ShadowType.In;
+            FeedView_swin.SetPolicy(PolicyType.Automatic, PolicyType.Automatic);
             left_paned.Pack2(FeedView_swin, true, true);
             
-            if ( Summa.Core.Config.WidescreenView ) {
-                right_paned = new Gtk.HPaned();
+            if ( Config.WidescreenView ) {
+                right_paned = new HPaned();
             } else {
-                right_paned = new Gtk.VPaned();
+                right_paned = new VPaned();
             }
             main_paned.Pack2(right_paned, true, true);
             
-            ItemView = new Summa.Gui.ItemView();
+            ItemView = new ItemView();
             ItemView.CursorChanged += new EventHandler(ItemviewChanged);
-            ItemView_swin = new Gtk.ScrolledWindow(new Gtk.Adjustment(0, 0, 0, 0, 0, 0), new Gtk.Adjustment(0, 0, 0, 0, 0, 0));
+            ItemView_swin = new ScrolledWindow(new Adjustment(0, 0, 0, 0, 0, 0), new Adjustment(0, 0, 0, 0, 0, 0));
             ItemView_swin.Add(ItemView);
-            ItemView_swin.ShadowType = Gtk.ShadowType.In;
-            ItemView_swin.SetPolicy(Gtk.PolicyType.Automatic, Gtk.PolicyType.Automatic);
+            ItemView_swin.ShadowType = ShadowType.In;
+            ItemView_swin.SetPolicy(PolicyType.Automatic, PolicyType.Automatic);
             right_paned.Pack1(ItemView_swin, true, true);
             
-            ItemNotebook = new Summa.Gui.ItemNotebook();
+            ItemNotebook = new ItemNotebook();
             right_paned.Pack2(ItemNotebook, true, true);
             
-            StatusBar = new Summa.Gui.NotificationBar();
-            table.Attach(StatusBar, 0, 5, 3, 4, Gtk.AttachOptions.Fill, Gtk.AttachOptions.Fill, 0, 0);
+            StatusBar = new NotificationBar();
+            table.Attach(StatusBar, 0, 5, 3, 4, AttachOptions.Fill, AttachOptions.Fill, 0, 0);
             
             UpdateFromConfig();
             FeedView.Populate(&quot;All&quot;);
             
-            Summa.Core.Application.Database.ItemChanged += OnItemChanged;
-            Summa.Core.Application.Database.ItemAdded += OnItemAdded;
-            Summa.Core.Notifier.ViewChanged += OnViewChanged;
+            Database.ItemChanged += OnItemChanged;
+            Database.ItemAdded += OnItemAdded;
+            Notifier.ViewChanged += OnViewChanged;
         }
         
         private void OnViewChanged(object obj, EventArgs args) {
             right_paned.Remove(ItemView_swin);
             right_paned.Remove(ItemNotebook);
             main_paned.Remove(right_paned);
-            if ( Summa.Core.Config.WidescreenView ) {
-                right_paned = new Gtk.HPaned();
+            if ( Config.WidescreenView ) {
+                right_paned = new HPaned();
             } else {
-                right_paned = new Gtk.VPaned();
+                right_paned = new VPaned();
             }
             main_paned.Pack2(right_paned, true, true);
             right_paned.Add1(ItemView_swin);
@@ -206,7 +210,7 @@ namespace Summa.Gui {
             ShowAll();
         }
         
-        private void OnItemChanged(object obj, Summa.Core.ChangedEventArgs args) {
+        private void OnItemChanged(object obj, ChangedEventArgs args) {
             if ( FeedView.HasSelected ) {
                 if ( FeedView.Selected.Url == args.FeedUri ) {
                     if ( args.ItemProperty == &quot;read&quot; ) {
@@ -216,7 +220,7 @@ namespace Summa.Gui {
             }
         }
         
-        private void OnItemAdded(object obj, Summa.Core.AddedEventArgs args) {
+        private void OnItemAdded(object obj, AddedEventArgs args) {
             if ( FeedView.HasSelected ) {
                 if ( FeedView.Selected.Url == args.FeedUri ) {
                     UpdateName();
@@ -240,7 +244,7 @@ namespace Summa.Gui {
         
         public void ItemviewChanged(object obj, EventArgs args) {
             UpdateHtmlview();
-            play_action.StockId = Gtk.Stock.MediaPlay;
+            play_action.StockId = Stock.MediaPlay;
             
             if ( ItemView.Selected.EncUri != &quot;&quot; ) {
                 play_action.Sensitive = true;
@@ -251,8 +255,8 @@ namespace Summa.Gui {
         
         public void UpdateHtmlview() {
             curitem = ItemView.Selected;
-            Gtk.Bin c = (Gtk.Bin)ItemNotebook.GetNthPage(0);
-            Summa.Gui.WebKitView view = (Summa.Gui.WebKitView)c.Child;
+            Bin c = (Bin)ItemNotebook.GetNthPage(0);
+            WebKitView view = (WebKitView)c.Child;
             view.Render(curitem);
             ItemNotebook.ShowAll();
             
@@ -277,15 +281,15 @@ namespace Summa.Gui {
         }
         
         public void UpdateFromConfig() {
-            Resize(Summa.Core.Config.WindowWidth, Summa.Core.Config.WindowHeight);
+            Resize(Config.WindowWidth, Config.WindowHeight);
         
-            main_paned.Position  = Summa.Core.Config.MainPanePosition;
-            left_paned.Position  = Summa.Core.Config.LeftPanePosition;
-            right_paned.Position  = Summa.Core.Config.RightPanePosition;
+            main_paned.Position  = Config.MainPanePosition;
+            left_paned.Position  = Config.LeftPanePosition;
+            right_paned.Position  = Config.RightPanePosition;
         }
         
-        public void ShowNotification(Summa.Data.Feed feed) {
-            /*if (Summa.Core.Config.ShowNotifications) {
+        public void ShowNotification(Feed feed) {
+            /*if (Config.ShowNotifications) {
                 var not = new Notify.Notification(&quot;New feed items&quot;, &quot;Feed \&quot;&quot;+feed.name+&quot;\&quot; has new unread items.&quot;, &quot;internet-news-reader&quot;, null);
                 not.set_urgency(Notify.Urgency.NORMAL);
                 not.show();
@@ -293,7 +297,7 @@ namespace Summa.Gui {
         }
         
         public void UpdateName() {
-            Summa.Data.ISource feed = FeedView.Selected;
+            ISource feed = FeedView.Selected;
             Title = feed.Name+&quot; (&quot;+feed.UnreadCount.ToString()+&quot; unread) - Summa&quot;;
         }
         
@@ -422,7 +426,7 @@ namespace Summa.Gui {
             about_action = new Summa.Actions.AboutAction(this);
             action_group.Add(about_action);
             
-            view_slist = new GLib.SList(typeof(Gtk.ToggleAction));
+            view_slist = new GLib.SList(typeof(ToggleAction));
             
             normal_view_action = new Summa.Actions.NormalViewAction(this);
             action_group.Add(normal_view_action);
@@ -438,7 +442,7 @@ namespace Summa.Gui {
         public void SetUpUimanager() {
             string ui = @&quot;&lt;ui&gt;
     &lt;menubar name='MenuBar'&gt;
-        &lt;menu action='FileMenu'&gt;
+        &lt;menu Gtk.Action='FileMenu'&gt;
             &lt;menuitem action='Add'/&gt;
             &lt;menuitem action='Import'/&gt;
             &lt;separator/&gt;
@@ -451,7 +455,7 @@ namespace Summa.Gui {
             &lt;menuitem action='New_window'/&gt;
             &lt;menuitem action='Close_window'/&gt;
         &lt;/menu&gt;
-        &lt;menu action='EditMenu'&gt;
+        &lt;menu Gtk.Action='EditMenu'&gt;
             &lt;menuitem action='Copy'/&gt;
             &lt;separator/&gt;
             &lt;menuitem action='Select_all'/&gt;
@@ -461,7 +465,7 @@ namespace Summa.Gui {
             &lt;separator/&gt;
             &lt;menuitem action='Preferences'/&gt;
         &lt;/menu&gt;
-        &lt;menu action='ViewMenu'&gt;
+        &lt;menu Gtk.Action='ViewMenu'&gt;
             &lt;menuitem action='ZoomIn'/&gt;
             &lt;menuitem action='ZoomOut'/&gt;
             &lt;separator/&gt;
@@ -471,7 +475,7 @@ namespace Summa.Gui {
             &lt;menuitem action='LoadImages'/&gt;
             &lt;menuitem action='Hide_read'/&gt;
         &lt;/menu&gt;
-        &lt;menu action='SubsMenu'&gt;
+        &lt;menu Gtk.Action='SubsMenu'&gt;
             &lt;menuitem action='Update'/&gt;
             &lt;menuitem action='Mark_read'/&gt;
             &lt;separator/&gt;
@@ -481,7 +485,7 @@ namespace Summa.Gui {
             &lt;menuitem action='Properties'/&gt;
             &lt;menuitem action='Tags'/&gt;
         &lt;/menu&gt;
-        &lt;menu action='ItemMenu'&gt;
+        &lt;menu Gtk.Action='ItemMenu'&gt;
             &lt;menuitem action='Flag_item'/&gt;
             &lt;menuitem action='Read_item'/&gt;
             &lt;separator/&gt;
@@ -491,7 +495,7 @@ namespace Summa.Gui {
             &lt;menuitem action='Email_link'/&gt;
             &lt;menuitem action='Bookmark'/&gt;
         &lt;/menu&gt;
-        &lt;menu action='HelpMenu'&gt;
+        &lt;menu Gtk.Action='HelpMenu'&gt;
             &lt;menuitem action='Contents'/&gt;
             &lt;menuitem action='About'/&gt;
         &lt;/menu&gt;</diff>
      <filename>src/Summa.Gui.Browser.cs</filename>
    </modified>
    <modified>
      <diff>@@ -27,38 +27,42 @@ using System;
 using System.Collections;
 using Gtk;
 
+using Summa.Core;
+using Summa.Data;
+using Summa.Gui;
+
 namespace Summa.Gui {
-    public class ConfigDialog : Gtk.Window {
-        private Gtk.VBox vbox;
-        private Gtk.Notebook notebook;
-        private Gtk.ButtonBox bbox;
-        private Gtk.VBox general_vbox;
-        private Gtk.VBox statusicon_vbox;
-        private Gtk.VBox feeds_vbox;
+    public class ConfigDialog : Window {
+        private VBox vbox;
+        private Notebook notebook;
+        private ButtonBox bbox;
+        private VBox general_vbox;
+        private VBox statusicon_vbox;
+        private VBox feeds_vbox;
         
-        private Gtk.CheckButton cb_notifications;
-        private Gtk.CheckButton cb_sortfeedview;
-        private Gtk.CheckButton cb_tabs;
-        private Gtk.CheckButton cb_icon;
-        private Gtk.CheckButton cb_widescreen;
-        private Gtk.ComboBox cb_updateinterval;
+        private CheckButton cb_notifications;
+        private CheckButton cb_sortfeedview;
+        private CheckButton cb_tabs;
+        private CheckButton cb_icon;
+        private CheckButton cb_widescreen;
+        private ComboBox cb_updateinterval;
         private string[] updateinterval_options;
-        private Gtk.ListStore store;
+        private ListStore store;
         
-        public ConfigDialog() : base(Gtk.WindowType.Toplevel) {
+        public ConfigDialog() : base(WindowType.Toplevel) {
             Title = &quot;Summa Preferences&quot;;
             BorderWidth = 5;
             DeleteEvent += OnClose;
             
-            vbox = new Gtk.VBox();
+            vbox = new VBox();
             vbox.Spacing = 6;
             Add(vbox);
             
-            notebook = new Gtk.Notebook();
+            notebook = new Notebook();
             vbox.PackStart(notebook, false, false, 0);
             
-            bbox = new Gtk.HButtonBox();
-            bbox.Layout = Gtk.ButtonBoxStyle.End;
+            bbox = new HButtonBox();
+            bbox.Layout = ButtonBoxStyle.End;
             vbox.PackStart(bbox, false, false, 0);
             
             AddGeneralTab();
@@ -67,12 +71,12 @@ namespace Summa.Gui {
         }
         
         private void AddGeneralTab() {
-            general_vbox = new Gtk.VBox();
+            general_vbox = new VBox();
             general_vbox.BorderWidth = 5;
             general_vbox.Spacing = 10;
             
-            Frame interface_frame = new Gtk.Frame();
-            Label interface_label = new Gtk.Label();
+            Frame interface_frame = new Frame();
+            Label interface_label = new Label();
             interface_label.Markup = (&quot;&lt;b&gt;Interface&lt;/b&gt;&quot;);
             interface_label.UseUnderline = true;
             interface_frame.LabelWidget = interface_label;
@@ -81,38 +85,38 @@ namespace Summa.Gui {
             interface_frame.Shadow = ShadowType.None;
             general_vbox.PackStart(interface_frame, false, false, 0);
             
-            Alignment interface_alignment = new Gtk.Alignment(0.0f, 0.0f, 1.0f, 1.0f);
+            Alignment interface_alignment = new Alignment(0.0f, 0.0f, 1.0f, 1.0f);
             interface_alignment.TopPadding = (uint)(interface_frame == null ? 0 : 5);
             interface_alignment.LeftPadding = 12;
             interface_frame.Add(interface_alignment);
             
-            VBox interface_vbox = new Gtk.VBox();
+            VBox interface_vbox = new VBox();
             interface_vbox.BorderWidth = 5;
             interface_vbox.Spacing = 6;
             interface_alignment.Add(interface_vbox);
             
-            cb_notifications = new Gtk.CheckButton(&quot;Show notifications on feed updates&quot;);
-            cb_notifications.Active = Summa.Core.Config.ShowNotifications;
+            cb_notifications = new CheckButton(&quot;Show notifications on feed updates&quot;);
+            cb_notifications.Active = Config.ShowNotifications;
             cb_notifications.Toggled += new EventHandler(OnCbNotificationsToggled);
             interface_vbox.PackStart(cb_notifications, false, false, 0);
             
-            cb_sortfeedview = new Gtk.CheckButton(&quot;Sort feeds according to unread items&quot;);
-            cb_sortfeedview.Active = Summa.Core.Config.SortFeedview;
+            cb_sortfeedview = new CheckButton(&quot;Sort feeds according to unread items&quot;);
+            cb_sortfeedview.Active = Config.SortFeedview;
             cb_sortfeedview.Toggled += new EventHandler(OnCbSortFeedViewToggled);
             interface_vbox.PackStart(cb_sortfeedview, false, false, 0);
             
-            cb_tabs = new Gtk.CheckButton(&quot;Open links in tabs inside Summa&quot;);
-            cb_tabs.Active = Summa.Core.Config.OpenTabs;
+            cb_tabs = new CheckButton(&quot;Open links in tabs inside Summa&quot;);
+            cb_tabs.Active = Config.OpenTabs;
             cb_tabs.Toggled += new EventHandler(OnCbTabsToggled);
             interface_vbox.PackStart(cb_tabs, false, false, 0);
             
-            cb_widescreen = new Gtk.CheckButton(&quot;Arrange window in widescreen mode&quot;);
-            cb_widescreen.Active = Summa.Core.Config.WidescreenView;
+            cb_widescreen = new CheckButton(&quot;Arrange window in widescreen mode&quot;);
+            cb_widescreen.Active = Config.WidescreenView;
             cb_widescreen.Toggled += new EventHandler(OnCbWidescreenToggled);
             interface_vbox.PackStart(cb_widescreen, false, false, 0);
             
-            Frame updating_frame = new Gtk.Frame();
-            Label updating_label = new Gtk.Label();
+            Frame updating_frame = new Frame();
+            Label updating_label = new Label();
             updating_label.Markup = (&quot;&lt;b&gt;Updating&lt;/b&gt;&quot;);
             updating_label.UseUnderline = true;
             updating_frame.LabelWidget = updating_label;
@@ -121,18 +125,18 @@ namespace Summa.Gui {
             updating_frame.Shadow = ShadowType.None;
             general_vbox.PackStart(updating_frame, false, false, 0);
             
-            Alignment updating_alignment = new Gtk.Alignment(0.0f, 0.0f, 1.0f, 1.0f);
+            Alignment updating_alignment = new Alignment(0.0f, 0.0f, 1.0f, 1.0f);
             updating_alignment.TopPadding = (uint)(updating_frame == null ? 0 : 5);
             updating_alignment.LeftPadding = 12;
             updating_frame.Add(updating_alignment);
             
-            VBox updating_vbox = new Gtk.VBox();
+            VBox updating_vbox = new VBox();
             updating_vbox.BorderWidth = 5;
             updating_vbox.Spacing = 6;
             updating_alignment.Add(updating_vbox);
             
-            Label updateinterval_label = new Gtk.Label(&quot;Update interval: &quot;);
-            HBox updateinterval_hbox = new Gtk.HBox();
+            Label updateinterval_label = new Label(&quot;Update interval: &quot;);
+            HBox updateinterval_hbox = new HBox();
             updateinterval_hbox.PackStart(updateinterval_label, false, false, 0);
             updating_vbox.PackStart(updateinterval_hbox);
             
@@ -142,26 +146,26 @@ namespace Summa.Gui {
             updateinterval_options[2] = &quot;Every two hours&quot;;
             updateinterval_options[3] = &quot;Daily&quot;;
             
-            cb_updateinterval = new Gtk.ComboBox(updateinterval_options);
+            cb_updateinterval = new ComboBox(updateinterval_options);
             SetCbUpdateIntervalText();
             cb_updateinterval.Changed += new EventHandler(OnCbUpdateIntervalChanged);
             updateinterval_hbox.PackStart(cb_updateinterval);
             
-            notebook.AppendPage(general_vbox, new Gtk.Label(&quot;General&quot;));
+            notebook.AppendPage(general_vbox, new Label(&quot;General&quot;));
         }
         
         private void AddStatusIconTab() {
-            statusicon_vbox = new Gtk.VBox();
+            statusicon_vbox = new VBox();
             statusicon_vbox.BorderWidth = 5;
             statusicon_vbox.Spacing = 10;
             
-            cb_icon = new Gtk.CheckButton(&quot;Show the status icon&quot;);
-            cb_icon.Active = Summa.Core.Config.ShowStatusIcon;
+            cb_icon = new CheckButton(&quot;Show the status icon&quot;);
+            cb_icon.Active = Config.ShowStatusIcon;
             cb_icon.Toggled += new EventHandler(OnCbIconToggled);
             statusicon_vbox.PackStart(cb_icon, false, false, 0);
             
-            Frame feeds_frame = new Gtk.Frame();
-            Label feeds_label = new Gtk.Label();
+            Frame feeds_frame = new Frame();
+            Label feeds_label = new Label();
             feeds_label.Markup = (&quot;&lt;b&gt;Feeds to show icon for&lt;/b&gt;&quot;);
             feeds_label.UseUnderline = true;
             feeds_frame.LabelWidget = feeds_label;
@@ -170,65 +174,65 @@ namespace Summa.Gui {
             feeds_frame.Shadow = ShadowType.None;
             statusicon_vbox.PackStart(feeds_frame, false, false, 0);
             
-            Alignment feeds_alignment = new Gtk.Alignment(0.0f, 0.0f, 1.0f, 1.0f);
+            Alignment feeds_alignment = new Alignment(0.0f, 0.0f, 1.0f, 1.0f);
             feeds_alignment.TopPadding = (uint)(feeds_frame == null ? 0 : 5);
             feeds_alignment.LeftPadding = 12;
             feeds_frame.Add(feeds_alignment);
             
-            feeds_vbox = new Gtk.VBox();
+            feeds_vbox = new VBox();
             feeds_vbox.BorderWidth = 5;
             feeds_vbox.Spacing = 6;
             feeds_alignment.Add(feeds_vbox);
             
             AddFeedTreeView();
             
-            notebook.AppendPage(statusicon_vbox, new Gtk.Label(&quot;Status Icon&quot;));
+            notebook.AppendPage(statusicon_vbox, new Label(&quot;Status Icon&quot;));
         }
         
         private void OnCbNotificationsToggled(object obj, EventArgs args) {
             if ( cb_notifications.Active ) {
-                Summa.Core.Config.ShowNotifications = true;
+                Config.ShowNotifications = true;
             } else {
-                Summa.Core.Config.ShowNotifications = false;
+                Config.ShowNotifications = false;
             }
         }
         
         private void OnCbSortFeedViewToggled(object obj, EventArgs args) {
             if ( cb_sortfeedview.Active ) {
-                Summa.Core.Config.SortFeedview = true;
+                Config.SortFeedview = true;
             } else {
-                Summa.Core.Config.SortFeedview = false;
+                Config.SortFeedview = false;
             }
         }
         
         private void OnCbTabsToggled(object obj, EventArgs args) {
             if ( cb_tabs.Active ) {
-                Summa.Core.Config.OpenTabs = true;
+                Config.OpenTabs = true;
             } else {
-                Summa.Core.Config.OpenTabs = false;
+                Config.OpenTabs = false;
             }
         }
         
         private void OnCbIconToggled(object obj, EventArgs args) {
             if ( cb_icon.Active ) {
-                Summa.Core.Config.ShowStatusIcon = true;
+                Config.ShowStatusIcon = true;
             } else {
-                Summa.Core.Config.ShowStatusIcon = false;
+                Config.ShowStatusIcon = false;
             }
         }
         
         private void OnCbWidescreenToggled(object obj, EventArgs args) {
             if ( cb_widescreen.Active ) {
-                Summa.Core.Config.WidescreenView = true;
+                Config.WidescreenView = true;
             } else {
-                Summa.Core.Config.WidescreenView = false;
+                Config.WidescreenView = false;
             }
         }
         
         private void SetCbUpdateIntervalText() {
             TreeIter iter;
             
-            switch(Summa.Core.Config.GlobalUpdateInterval) {
+            switch(Config.GlobalUpdateInterval) {
                 case 1800000:
                     cb_updateinterval.Model.GetIterFirst(out iter);
                     cb_updateinterval.SetActiveIter(iter);
@@ -257,46 +261,46 @@ namespace Summa.Gui {
         private void OnCbUpdateIntervalChanged(object obj, EventArgs args) {
             switch(cb_updateinterval.ActiveText) {
                 case &quot;Every thirty minutes&quot;:
-                    Summa.Core.Config.GlobalUpdateInterval = 1800000;
+                    Config.GlobalUpdateInterval = 1800000;
                     break;
                 case &quot;Every hour&quot;:
-                    Summa.Core.Config.GlobalUpdateInterval = 3600000;
+                    Config.GlobalUpdateInterval = 3600000;
                     break;
                 case &quot;Every two hours&quot;:
-                    Summa.Core.Config.GlobalUpdateInterval = 7200000;
+                    Config.GlobalUpdateInterval = 7200000;
                     break;
                 case &quot;Daily&quot;:
-                    Summa.Core.Config.GlobalUpdateInterval = 86400000;
+                    Config.GlobalUpdateInterval = 86400000;
                     break;
             }
         }
         
         private void AddFeedTreeView() {
-            store = new Gtk.ListStore(typeof(bool), typeof(string), typeof(string), typeof(Gdk.Pixbuf));
+            store = new ListStore(typeof(bool), typeof(string), typeof(string), typeof(Gdk.Pixbuf));
             
-            CellRendererToggle crt = new Gtk.CellRendererToggle();
+            CellRendererToggle crt = new CellRendererToggle();
             crt.Activatable = true;
-            crt.Toggled += new Gtk.ToggledHandler(OnCrtToggled);
+            crt.Toggled += new ToggledHandler(OnCrtToggled);
             
-            CellRendererText trender = new Gtk.CellRendererText();
+            CellRendererText trender = new CellRendererText();
             trender.Ellipsize = Pango.EllipsizeMode.End;
             
-            TreeView treeview = new Gtk.TreeView();
+            TreeView treeview = new TreeView();
             treeview.Model = store;
             
-            ScrolledWindow treeview_swin = new Gtk.ScrolledWindow(new Gtk.Adjustment(0, 0, 0, 0, 0, 0), new Gtk.Adjustment(0, 0, 0, 0, 0, 0));
+            ScrolledWindow treeview_swin = new ScrolledWindow(new Adjustment(0, 0, 0, 0, 0, 0), new Adjustment(0, 0, 0, 0, 0, 0));
             treeview_swin.Add(treeview);
             treeview_swin.SetSizeRequest(200, 300);
-            treeview_swin.ShadowType = Gtk.ShadowType.In;
-            treeview_swin.SetPolicy(Gtk.PolicyType.Automatic, Gtk.PolicyType.Automatic);
+            treeview_swin.ShadowType = ShadowType.In;
+            treeview_swin.SetPolicy(PolicyType.Automatic, PolicyType.Automatic);
             
-            TreeViewColumn column_Use = new Gtk.TreeViewColumn(&quot;Use&quot;, crt, &quot;active&quot;, 0);
+            TreeViewColumn column_Use = new TreeViewColumn(&quot;Use&quot;, crt, &quot;active&quot;, 0);
             treeview.AppendColumn(column_Use);
             
-            TreeViewColumn column_Icon = new Gtk.TreeViewColumn(&quot;Icon&quot;, new Gtk.CellRendererPixbuf(), &quot;pixbuf&quot;, 3);
+            TreeViewColumn column_Icon = new TreeViewColumn(&quot;Icon&quot;, new CellRendererPixbuf(), &quot;pixbuf&quot;, 3);
             treeview.AppendColumn(column_Icon);
             
-            TreeViewColumn column_Name = new Gtk.TreeViewColumn(&quot;Title&quot;, trender, &quot;text&quot;, 1);
+            TreeViewColumn column_Name = new TreeViewColumn(&quot;Title&quot;, trender, &quot;text&quot;, 1);
             treeview.AppendColumn(column_Name);
             
             feeds_vbox.PackStart(treeview_swin);
@@ -305,22 +309,22 @@ namespace Summa.Gui {
         
         private void OnCrtToggled(object obj, ToggledArgs args) {
             TreeIter iter;
-            store.GetIter(out iter, new Gtk.TreePath(args.Path));
+            store.GetIter(out iter, new TreePath(args.Path));
             
             if ( (bool)store.GetValue(iter, 0) ) {
                 store.SetValue(iter, 0, false);
-                Summa.Data.Feed feed = Summa.Data.Core.RegisterFeed((string)store.GetValue(iter, 2));
+                Feed feed = Feeds.RegisterFeed((string)store.GetValue(iter, 2));
                 
-                ArrayList uris = Summa.Core.Config.IconFeedUris;
+                ArrayList uris = Config.IconFeedUris;
                 uris.Remove(feed.Url);
-                Summa.Core.Config.IconFeedUris = uris;
+                Config.IconFeedUris = uris;
             } else {
                 store.SetValue(iter, 0, true);
-                Summa.Data.Feed feed = Summa.Data.Core.RegisterFeed((string)store.GetValue(iter, 2));
+                Feed feed = Feeds.RegisterFeed((string)store.GetValue(iter, 2));
                 
-                ArrayList uris = Summa.Core.Config.IconFeedUris;
+                ArrayList uris = Config.IconFeedUris;
                 uris.Add(feed.Url);
-                Summa.Core.Config.IconFeedUris = uris;
+                Config.IconFeedUris = uris;
             }
             Summa.Core.Application.StatusIcon.CheckVisibility();
         }
@@ -328,10 +332,10 @@ namespace Summa.Gui {
         private void Populate(string tag) {
             store.Clear();
             
-            foreach ( Summa.Data.Feed feed in Summa.Data.Core.GetFeeds() ) {
-                Gtk.TreeIter iter = store.Append();
+            foreach ( Feed feed in Feeds.GetFeeds() ) {
+                TreeIter iter = store.Append();
                 
-                store.SetValue(iter, 0, Summa.Core.Config.IconFeedUris.Contains(feed.Url));
+                store.SetValue(iter, 0, Config.IconFeedUris.Contains(feed.Url));
                 store.SetValue(iter, 1, feed.Name);
                 store.SetValue(iter, 2, feed.Url);
                 store.SetValue(iter, 3, feed.Favicon);
@@ -339,7 +343,7 @@ namespace Summa.Gui {
         }
         
         private void AddCloseButton() {
-            Button close_button = new Gtk.Button(Gtk.Stock.Close);
+            Button close_button = new Button(Stock.Close);
             close_button.Clicked  += new EventHandler(OnClose);
             bbox.PackStart(close_button);
         }</diff>
      <filename>src/Summa.Gui.ConfigDialog.cs</filename>
    </modified>
    <modified>
      <diff>@@ -27,21 +27,25 @@
 using System;
 using Gtk;
 
+using Summa.Core;
+using Summa.Data;
+using Summa.Gui;
+
 namespace Summa.Gui {
-    public class DeleteConfirmationDialog : Gtk. Window {
-        private Summa.Data.ISource feed;
+    public class DeleteConfirmationDialog :  Window {
+        private ISource feed;
         
-        private Gtk.VBox vbox;
-        private Gtk.HBox hbox;
-        private Gtk.Image image;
-        private Gtk.Table table;
-        private Gtk.Label label;
-        private Gtk.Label warn_label;
-        private Gtk.ButtonBox bbox;
-        private Gtk.Button cancel_button;
-        private Gtk.Button delete_button;
+        private VBox vbox;
+        private HBox hbox;
+        private Image image;
+        private Table table;
+        private Label label;
+        private Label warn_label;
+        private ButtonBox bbox;
+        private Button cancel_button;
+        private Button delete_button;
         
-        public DeleteConfirmationDialog(Summa.Data.ISource delfeed) : base(Gtk.WindowType.Toplevel) {
+        public DeleteConfirmationDialog(ISource delfeed) : base(WindowType.Toplevel) {
             feed = delfeed;
             
             Title = &quot;Delete feed?&quot;;
@@ -52,40 +56,40 @@ namespace Summa.Gui {
             Resizable = false;
             BorderWidth = 6;
             
-            vbox = new Gtk.VBox(false, 6);
+            vbox = new VBox(false, 6);
             Add(vbox);
-            hbox = new Gtk.HBox(false, 6);
+            hbox = new HBox(false, 6);
             
             vbox.PackStart(hbox);
             
-            image = new Gtk.Image(Gtk.Stock.Delete, Gtk.IconSize.Dialog);
+            image = new Image(Stock.Delete, IconSize.Dialog);
             hbox.PackStart(image);
             
-            table = new Gtk.Table(2, 3, false);
+            table = new Table(2, 3, false);
             table.RowSpacing = 6;
             hbox.PackEnd(table);
             
-            label = new Gtk.Label();
+            label = new Label();
             label.Wrap = true;
             label.Markup = &quot;&lt;b&gt;&lt;big&gt;Delete feed &quot;+feed.Name+&quot;?&lt;/big&gt;&lt;/b&gt;&quot;;
             table.Attach(label, 1, 2, 0, 1);
             
-            warn_label = new Gtk.Label();
+            warn_label = new Label();
             warn_label.Wrap = true;
             warn_label.Markup = &quot;This cannot be undone.&quot;;
             warn_label.SetAlignment(0.0F, 0.5F);
             table.Attach(warn_label, 1, 2, 1, 2);
             
-            bbox = new Gtk.HButtonBox();
-            bbox.Layout = Gtk.ButtonBoxStyle.End;
+            bbox = new HButtonBox();
+            bbox.Layout = ButtonBoxStyle.End;
             bbox.Spacing = 6;
             vbox.PackEnd(bbox);
                 
-            cancel_button = new Gtk.Button(Gtk.Stock.Cancel);
+            cancel_button = new Button(Stock.Cancel);
             cancel_button.Clicked += new EventHandler(OnCancel);
             bbox.PackStart(cancel_button);
             
-            delete_button = new Gtk.Button(Gtk.Stock.Delete);
+            delete_button = new Button(Stock.Delete);
             delete_button.Clicked += new EventHandler(OnDelete);
             bbox.PackEnd(delete_button);
         }
@@ -95,7 +99,7 @@ namespace Summa.Gui {
         }
         
         private void OnDelete(object obj, EventArgs args) {
-            Summa.Data.Core.DeleteFeed(feed.Url);
+            Feeds.DeleteFeed(feed.Url);
             
             Destroy();
         }</diff>
      <filename>src/Summa.Gui.DeleteConfirmationDialog.cs</filename>
    </modified>
    <modified>
      <diff>@@ -27,13 +27,16 @@ using System;
 using System.Collections;
 using NDesk.DBus;
 
+using Summa.Core;
+using Summa.Gui;
+
 namespace Summa.Gui {
     public class DieuBookmarker : Summa.Core.IBookmarker {
-        private Summa.Gui.IDieu dieu;
+        private IDieu dieu;
         private bool possible;
         
         public DieuBookmarker() {
-            dieu = Bus.Session.GetObject&lt;Summa.Gui.IDieu&gt;(&quot;org.gnome.Dieu&quot;, new ObjectPath(&quot;/org/gnome/Dieu&quot;));
+            dieu = Bus.Session.GetObject&lt;IDieu&gt;(&quot;org.gnome.Dieu&quot;, new ObjectPath(&quot;/org/gnome/Dieu&quot;));
             possible = true;
         }
         </diff>
      <filename>src/Summa.Gui.DieuBookmarker.cs</filename>
    </modified>
    <modified>
      <diff>@@ -27,26 +27,30 @@
 using System;
 using Gtk;
 
+using Summa.Core;
+using Summa.Data;
+using Summa.Gui;
+
 namespace Summa.Gui {
-    public class FeedPropertiesDialog : Gtk.Window {
-        public Summa.Data.ISource feed;
+    public class FeedPropertiesDialog : Window {
+        public ISource feed;
         
-        private Gtk.VBox vbox;
-        private Gtk.Notebook notebook;
-        private Gtk.ButtonBox bbox;
+        private VBox vbox;
+        private Notebook notebook;
+        private ButtonBox bbox;
         
-        private Gtk.VBox general_vbox;
-        private Gtk.Entry entry_name;
-        private Gtk.Entry entry_author;
-        private Gtk.Entry entry_subtitle;
-        private Gtk.Entry entry_image;
-        private Gtk.Entry entry_url;
+        private VBox general_vbox;
+        private Entry entry_name;
+        private Entry entry_author;
+        private Entry entry_subtitle;
+        private Entry entry_image;
+        private Entry entry_url;
         
-        private Gtk.TreeView tv_tags;
-        public Gtk.ListStore store_tags;
-        private Gtk.CellRendererToggle cr_toggle;
+        private TreeView tv_tags;
+        public ListStore store_tags;
+        private CellRendererToggle cr_toggle;
         
-        public FeedPropertiesDialog(Summa.Data.ISource f) : base(Gtk.WindowType.Toplevel) {
+        public FeedPropertiesDialog(ISource f) : base(WindowType.Toplevel) {
             feed = f;
             
             Title = &quot;\&quot;&quot;+feed.Name+&quot;\&quot; Properties&quot;;
@@ -54,15 +58,15 @@ namespace Summa.Gui {
             BorderWidth = 5;
             DeleteEvent += OnClose;
             
-            vbox = new Gtk.VBox();
+            vbox = new VBox();
             vbox.Spacing = 6;
             Add(vbox);
             
-            notebook = new Gtk.Notebook();
+            notebook = new Notebook();
             vbox.PackStart(notebook, false, false, 0);
             
-            bbox = new Gtk.HButtonBox();
-            bbox.Layout = Gtk.ButtonBoxStyle.End;
+            bbox = new HButtonBox();
+            bbox.Layout = ButtonBoxStyle.End;
             vbox.PackStart(bbox, false, false, 0);
             
             AddGeneralTab();
@@ -71,12 +75,12 @@ namespace Summa.Gui {
         }
         
         private void AddGeneralTab() {
-            general_vbox = new Gtk.VBox();
+            general_vbox = new VBox();
             general_vbox.BorderWidth = 5;
             general_vbox.Spacing = 10;
             
-            Frame properties_frame = new Gtk.Frame();
-            Label properties_label = new Gtk.Label();
+            Frame properties_frame = new Frame();
+            Label properties_label = new Label();
             properties_label.Markup = (&quot;&lt;b&gt;Properties&lt;/b&gt;&quot;);
             properties_label.UseUnderline = true;
             properties_frame.LabelWidget = properties_label;
@@ -85,48 +89,48 @@ namespace Summa.Gui {
             properties_frame.Shadow = ShadowType.None;
             general_vbox.PackStart(properties_frame, false, false, 0);
             
-            Alignment properties_alignment = new Gtk.Alignment(0.0f, 0.0f, 1.0f, 1.0f);
+            Alignment properties_alignment = new Alignment(0.0f, 0.0f, 1.0f, 1.0f);
             properties_alignment.TopPadding = (uint)(properties_frame == null ? 0 : 5);
             properties_alignment.LeftPadding = 12;
             properties_frame.Add(properties_alignment);
             
-            Table properties_table = new Gtk.Table(2, 4, false);
+            Table properties_table = new Table(2, 4, false);
             properties_table.BorderWidth = 5;
             properties_table.ColumnSpacing = 6;
             properties_table.RowSpacing = 6;
             properties_alignment.Add(properties_table);
             
-            Label name_label = new Gtk.Label(&quot;Name: &quot;);
+            Label name_label = new Label(&quot;Name: &quot;);
             name_label.SetAlignment(0.0F, 0.5F);
             properties_table.Attach(name_label, 0, 1, 0, 1);
             
-            entry_name = new Gtk.Entry(feed.Name);
+            entry_name = new Entry(feed.Name);
             properties_table.Attach(entry_name, 1, 2, 0, 1);
             
-            Label author_label = new Gtk.Label(&quot;Author: &quot;);
+            Label author_label = new Label(&quot;Author: &quot;);
             author_label.SetAlignment(0.0F, 0.5F);
             properties_table.Attach(author_label, 0, 1, 1, 2);
             
-            entry_author = new Gtk.Entry(feed.Author);
+            entry_author = new Entry(feed.Author);
             properties_table.Attach(entry_author, 1, 2, 1, 2);
             
-            Label subtitle_label = new Gtk.Label(&quot;Subtitle: &quot;);
+            Label subtitle_label = new Label(&quot;Subtitle: &quot;);
             subtitle_label.SetAlignment(0.0F, 0.5F);
             properties_table.Attach(subtitle_label, 0, 1, 2, 3);
             
-            entry_subtitle = new Gtk.Entry(feed.Subtitle);
+            entry_subtitle = new Entry(feed.Subtitle);
             properties_table.Attach(entry_subtitle, 1, 2, 2, 3);
             
-            Label image_label = new Gtk.Label(&quot;Image: &quot;);
+            Label image_label = new Label(&quot;Image: &quot;);
             image_label.SetAlignment(0.0F, 0.5F);
             properties_table.Attach(image_label, 0, 1, 3, 4);
             
-            entry_image = new Gtk.Entry(feed.Image);
+            entry_image = new Entry(feed.Image);
             properties_table.Attach(entry_image, 1, 2, 3, 4);
             
-            Frame source_frame = new Gtk.Frame();
+            Frame source_frame = new Frame();
             source_frame.Sensitive = false;
-            Label source_label = new Gtk.Label();
+            Label source_label = new Label();
             source_label.Markup = (&quot;&lt;b&gt;Source&lt;/b&gt;&quot;);
             source_label.UseUnderline = true;
             source_frame.LabelWidget = source_label;
@@ -135,55 +139,55 @@ namespace Summa.Gui {
             source_frame.Shadow = ShadowType.None;
             general_vbox.PackStart(source_frame, false, false, 0);
             
-            Alignment source_alignment = new Gtk.Alignment(0.0f, 0.0f, 1.0f, 1.0f);
+            Alignment source_alignment = new Alignment(0.0f, 0.0f, 1.0f, 1.0f);
             source_alignment.TopPadding = (uint)(source_frame == null ? 0 : 5);
             source_alignment.LeftPadding = 12;
             source_frame.Add(source_alignment);
             
-            Table source_table = new Gtk.Table(2, 4, false);
+            Table source_table = new Table(2, 4, false);
             source_table.BorderWidth = 5;
             source_table.ColumnSpacing = 6;
             source_table.RowSpacing = 6;
             source_alignment.Add(source_table);
             
-            Label url_label = new Gtk.Label(&quot;URL: &quot;);
+            Label url_label = new Label(&quot;URL: &quot;);
             url_label.SetAlignment(0.0F, 0.5F);
             source_table.Attach(url_label, 0, 1, 0, 1);
             
-            entry_url = new Gtk.Entry(feed.Url);
+            entry_url = new Entry(feed.Url);
             source_table.Attach(entry_url, 1, 2, 0, 1);
             
-            notebook.AppendPage(general_vbox, new Gtk.Label(&quot;General&quot;));
+            notebook.AppendPage(general_vbox, new Label(&quot;General&quot;));
         }
         
         private void AddTagsTab() {
-            Table tags_table = new Gtk.Table(1, 2, false);
+            Table tags_table = new Table(1, 2, false);
             tags_table.BorderWidth = 5;
             tags_table.ColumnSpacing = 10;
             tags_table.RowSpacing = 10;
             
-            ScrolledWindow tags_swin = new Gtk.ScrolledWindow();
-            tags_swin.ShadowType = Gtk.ShadowType.In;
-            tags_swin.SetPolicy(Gtk.PolicyType.Automatic, Gtk.PolicyType.Automatic);
+            ScrolledWindow tags_swin = new ScrolledWindow();
+            tags_swin.ShadowType = ShadowType.In;
+            tags_swin.SetPolicy(PolicyType.Automatic, PolicyType.Automatic);
             tags_table.Attach(tags_swin, 0, 1, 0, 1);
             
-            cr_toggle = new Gtk.CellRendererToggle();
+            cr_toggle = new CellRendererToggle();
             cr_toggle.Activatable = true;
-            cr_toggle.Toggled += new Gtk.ToggledHandler(OnCrToggleToggled);
-            tv_tags = new Gtk.TreeView();
+            cr_toggle.Toggled += new ToggledHandler(OnCrToggleToggled);
+            tv_tags = new TreeView();
             tags_swin.Add(tv_tags);
             
-            store_tags = new Gtk.ListStore(typeof(bool), typeof(string));
+            store_tags = new ListStore(typeof(bool), typeof(string));
             tv_tags.Model = store_tags;
             
             // set up the columns for the view
-            TreeViewColumn column_Read = new Gtk.TreeViewColumn(&quot;Use&quot;, cr_toggle, &quot;active&quot;, 0);
+            TreeViewColumn column_Read = new TreeViewColumn(&quot;Use&quot;, cr_toggle, &quot;active&quot;, 0);
             tv_tags.AppendColumn(column_Read);
             
-            TreeViewColumn column_Name = new Gtk.TreeViewColumn(&quot;Title&quot;, new Gtk.CellRendererText(), &quot;text&quot;, 1);
+            TreeViewColumn column_Name = new TreeViewColumn(&quot;Title&quot;, new CellRendererText(), &quot;text&quot;, 1);
             tv_tags.AppendColumn(column_Name);
             
-            foreach ( string tag in Summa.Data.Core.GetTags() ) {
+            foreach ( string tag in Feeds.GetTags() ) {
                 TreeIter iter = store_tags.Append();
                 if ( feed.Tags.Contains(tag) ) {
                     store_tags.SetValue(iter, 0, true);
@@ -193,25 +197,25 @@ namespace Summa.Gui {
                 store_tags.SetValue(iter, 1, tag);
             }
             
-            ButtonBox tags_bbox = new Gtk.HButtonBox();
-            tags_bbox.Layout = Gtk.ButtonBoxStyle.End;
+            ButtonBox tags_bbox = new HButtonBox();
+            tags_bbox.Layout = ButtonBoxStyle.End;
             tags_table.Attach(tags_bbox, 0, 1, 1, 2);
             
-            Button add_button = new Gtk.Button(Gtk.Stock.Add);
+            Button add_button = new Button(Stock.Add);
             add_button.Clicked += new EventHandler(OnAddButtonClicked);
             tags_bbox.PackStart(add_button);
             
-            notebook.AppendPage(tags_table, new Gtk.Label(&quot;Tags&quot;));
+            notebook.AppendPage(tags_table, new Label(&quot;Tags&quot;));
         }
         
         private void OnAddButtonClicked(object obj, EventArgs args) {
-            Window win = new Summa.Gui.AddTagDialog(this);
+            Window win = new AddTagDialog(this);
             win.ShowAll();
         }
         
         private void OnCrToggleToggled(object obj, ToggledArgs args) {
             TreeIter iter;
-            store_tags.GetIter(out iter, new Gtk.TreePath(args.Path));
+            store_tags.GetIter(out iter, new TreePath(args.Path));
             
             if ( (bool)store_tags.GetValue(iter, 0) ) {
                 store_tags.SetValue(iter, 0, false);
@@ -223,7 +227,7 @@ namespace Summa.Gui {
         }
         
         private void AddCloseButton() {
-            Button close_button = new Gtk.Button(Gtk.Stock.Close);
+            Button close_button = new Button(Stock.Close);
             close_button.Clicked  += new EventHandler(OnClose);
             bbox.PackStart(close_button);
         }</diff>
      <filename>src/Summa.Gui.FeedPropertiesDialog.cs</filename>
    </modified>
    <modified>
      <diff>@@ -25,21 +25,26 @@
 
 
 using System;
-using Gtk;
 using System.Collections;
-using Gdk;
 using System.Linq;
+
+using Gtk;
+using Gdk;
 using Pango;
 
+using Summa.Core;
+using Summa.Data;
+using Summa.Gui;
+
 namespace Summa.Gui {
-    public class FeedView : Gtk.TreeView{
-        public Gtk.ListStore store;
+    public class FeedView : TreeView{
+        public ListStore store;
         public string SetTag;
         
         private ArrayList feeds;
         
-        public Gtk.TreeIter iter;
-        public Gtk.TreeModel selectmodel;
+        public TreeIter iter;
+        public TreeModel selectmodel;
         
         // a NewsKitFeed representing the feed selected
         // note that if no feed is selected, trying to get this will cause you
@@ -54,7 +59,7 @@ namespace Summa.Gui {
             }
         }
         
-        public Summa.Data.ISource Selected {
+        public ISource Selected {
             get {
                 if ( Selection.CountSelectedRows() != 0 ) {
                     Selection.GetSelected(out selectmodel, out iter);
@@ -63,15 +68,15 @@ namespace Summa.Gui {
                 string val = (string)store.GetValue(iter, 2);
                 
                 if ( val != null ) {
-                    return Summa.Data.Core.RegisterFeed(val);
+                    return Feeds.RegisterFeed(val);
                 } else {
                     if ( (string)store.GetValue(iter, 1) == &quot;Unread items&quot; ) {
-                        Summa.Data.Search search = new Summa.Data.Search(&quot;summasearch://read:false&quot;);
+                        Search search = new Search(&quot;summasearch://read:false&quot;);
                         search.Name = &quot;Unread items&quot;;
                         search.AddSearchTerm(&quot;read&quot;, &quot;False&quot;);
                         return search;
                     } else if ( (string)store.GetValue(iter, 1) == &quot;Flagged items&quot; ) {
-                        Summa.Data.Search search = new Summa.Data.Search(&quot;summasearch://flagged:true&quot;);
+                        Search search = new Search(&quot;summasearch://flagged:true&quot;);
                         search.Name = &quot;Flagged items&quot;;
                         search.AddSearchTerm(&quot;flagged&quot;, &quot;True&quot;);
                         return search;
@@ -82,36 +87,36 @@ namespace Summa.Gui {
         }
         
         public bool FeedSort {
-            get { return Summa.Core.Config.SortFeedview; }
+            get { return Config.SortFeedview; }
             set { 
                 if ( value ) {
-                    store.SetSortColumnId(3, Gtk.SortType.Descending);
+                    store.SetSortColumnId(3, SortType.Descending);
                 }
-                Summa.Core.Config.SortFeedview = value;
+                Config.SortFeedview = value;
             }
         }
         
-        private Gtk.CellRendererText trender;
+        private CellRendererText trender;
         private Hashtable feedhash;
         
         public FeedView() {
             // set up the liststore for the view
-            store = new Gtk.ListStore(typeof(Gdk.Pixbuf),    // the icon
-                                        typeof(string),        // the name
-                                        typeof(string),        // the url
-                                        typeof(bool),          // unread?
-                                        typeof(int));          // font weight
+            store = new ListStore(typeof(Gdk.Pixbuf),    // the icon
+                                  typeof(string),        // the name
+                                  typeof(string),        // the url
+                                  typeof(bool),          // unread?
+                                  typeof(int));          // font weight
             Model = store;
-            trender = new Gtk.CellRendererText();
+            trender = new CellRendererText();
             trender.Ellipsize = Pango.EllipsizeMode.End;
             
             // set up the columns for the view
-            TreeViewColumn column_Read = new Gtk.TreeViewColumn(&quot;Read&quot;, new Gtk.CellRendererPixbuf(), &quot;pixbuf&quot;, 0);
+            TreeViewColumn column_Read = new TreeViewColumn(&quot;Read&quot;, new CellRendererPixbuf(), &quot;pixbuf&quot;, 0);
             column_Read.SortColumnId = 3;
             column_Read.SortIndicator = false;
             AppendColumn(column_Read);
             
-            TreeViewColumn column_Name = new Gtk.TreeViewColumn(&quot;Title&quot;, trender, &quot;text&quot;, 1);
+            TreeViewColumn column_Name = new TreeViewColumn(&quot;Title&quot;, trender, &quot;text&quot;, 1);
             column_Name.AddAttribute(trender, &quot;weight&quot;, 4);
             column_Name.SortColumnId = 1;
             column_Name.SortIndicator = true;
@@ -122,40 +127,40 @@ namespace Summa.Gui {
             feedhash = new Hashtable();
             feeds = new ArrayList();
             
-            Summa.Core.Application.Database.FeedAdded += OnFeedAdded;
-            Summa.Core.Application.Database.FeedDeleted += OnFeedDeleted;
-            Summa.Core.Application.Database.FeedChanged += OnFeedChanged;
-            Summa.Core.Application.Database.ItemChanged += OnItemChanged;
-            Summa.Core.Application.Database.ItemAdded += OnItemAdded;
-            Summa.Core.Application.Database.ItemDeleted += OnItemDeleted;
+            Database.FeedAdded += OnFeedAdded;
+            Database.FeedDeleted += OnFeedDeleted;
+            Database.FeedChanged += OnFeedChanged;
+            Database.ItemChanged += OnItemChanged;
+            Database.ItemAdded += OnItemAdded;
+            Database.ItemDeleted += OnItemDeleted;
         }
         
-        private void OnFeedAdded (object obj, Summa.Core.AddedEventArgs args) {
-            Summa.Data.Feed feed = new Summa.Data.Feed(args.Uri);
+        private void OnFeedAdded (object obj, AddedEventArgs args) {
+            Feed feed = new Feed(args.Uri);
             
             if ( feed.Tags.Contains(SetTag) ) {
-                AddNewFeed(new Summa.Data.Feed(args.Uri));
+                AddNewFeed(new Feed(args.Uri));
             }
             
             ShowAll();
         }
         
-        private void OnFeedDeleted(object obj, Summa.Core.AddedEventArgs args) {
-            DeleteFeed(new Summa.Data.Feed(args.Uri));
+        private void OnFeedDeleted(object obj, AddedEventArgs args) {
+            DeleteFeed(new Feed(args.Uri));
         }
         
-        private void OnFeedChanged(object obj, Summa.Core.ChangedEventArgs args) {
+        private void OnFeedChanged(object obj, ChangedEventArgs args) {
             try {
-                UpdateFeed(new Summa.Data.Feed(args.Uri));
+                UpdateFeed(new Feed(args.Uri));
             } catch ( Exception e ) {
-                Summa.Core.Log.Exception(e);
+                Log.Exception(e);
             }
             
             if ( args.ItemProperty == &quot;tags&quot; ) {
                 if ( args.Value.Split(',').Contains(SetTag) ) {
                     try {
                     } catch ( Exception ) {
-                        AddNewFeed(new Summa.Data.Feed(args.Uri));
+                        AddNewFeed(new Feed(args.Uri));
                     }
                 }
             }
@@ -163,27 +168,27 @@ namespace Summa.Gui {
             ShowAll();
         }
         
-        private void OnItemAdded(object obj, Summa.Core.AddedEventArgs args) {
+        private void OnItemAdded(object obj, AddedEventArgs args) {
             try {
-                UpdateFeed(new Summa.Data.Feed(args.FeedUri));
+                UpdateFeed(new Feed(args.FeedUri));
             } catch ( Exception e ) {
-                Summa.Core.Log.Exception(e);
+                Log.Exception(e);
             }
         }
         
-        private void OnItemDeleted(object obj, Summa.Core.AddedEventArgs args) {
+        private void OnItemDeleted(object obj, AddedEventArgs args) {
             try {
-                UpdateFeed(new Summa.Data.Feed(args.FeedUri));
+                UpdateFeed(new Feed(args.FeedUri));
             } catch ( Exception e ) {
-                Summa.Core.Log.Exception(e);
+                Log.Exception(e);
             }
         }
         
-        private void OnItemChanged(object obj, Summa.Core.ChangedEventArgs args) {
+        private void OnItemChanged(object obj, ChangedEventArgs args) {
             try {
-                UpdateFeed(new Summa.Data.Feed(args.FeedUri));
+                UpdateFeed(new Feed(args.FeedUri));
             } catch ( Exception e ) {
-                Summa.Core.Log.Exception(e);
+                Log.Exception(e);
             }
         }
         
@@ -202,29 +207,29 @@ namespace Summa.Gui {
         }
         
         public void Update() {
-            ArrayList ufeeds = Summa.Data.Core.GetFeeds(SetTag);
+            ArrayList ufeeds = Feeds.GetFeeds(SetTag);
             ArrayList haveurls = new ArrayList();
             
-            foreach ( Summa.Data.ISource feed in feeds ) {
+            foreach ( ISource feed in feeds ) {
                 haveurls.Add(feed.Url);
             }
             
-            foreach (Summa.Data.ISource feed in ufeeds) {
+            foreach (ISource feed in ufeeds) {
                 if ( !haveurls.Contains(feed.Url) ) {
-                    Gtk.TreeIter iter;
+                    TreeIter iter;
                     iter = store.Append();
                     
                     AppendFeed(feed, iter);
                 }
             }
-            feeds = Summa.Data.Core.GetFeeds(SetTag);
+            feeds = Feeds.GetFeeds(SetTag);
         }
         
         public void UpdateSelected() {
             AppendFeed(Selected, iter);
         }
         
-        public void UpdateFeed(Summa.Data.ISource feed) {
+        public void UpdateFeed(ISource feed) {
             TreePath path = (TreePath)feedhash[feed.Url];
             TreeIter iter;
             store.GetIter(out iter, path);
@@ -232,28 +237,28 @@ namespace Summa.Gui {
             QueueDraw();
         }
         
-        public void DeleteFeed(Summa.Data.ISource feed) {
+        public void DeleteFeed(ISource feed) {
             try {
                 TreePath path = (TreePath)feedhash[feed.Url];
                 TreeIter iter;
                 store.GetIter(out iter, path);
                 store.Remove(ref iter);
             } catch ( Exception e ) {
-                Summa.Core.Log.Exception(e);
+                Log.Exception(e);
             }
             QueueDraw();
             QueueResize();
         }
         
-        public void AddNewFeed(Summa.Data.ISource feed) {
-            Gtk.TreeIter iter = store.Append();
+        public void AddNewFeed(ISource feed) {
+            TreeIter iter = store.Append();
             
             AppendFeed(feed, iter);
             QueueDraw();
             QueueResize();
         }
         
-        public void AppendFeed(Summa.Data.ISource feed, Gtk.TreeIter titer) {
+        public void AppendFeed(ISource feed, TreeIter titer) {
             bool unread = feed.HasUnread;
             
             Gdk.Pixbuf icon = feed.Favicon;
@@ -274,7 +279,7 @@ namespace Summa.Gui {
             try {
                 feedhash.Add(feedurl, store.GetPath(titer));
             } catch ( System.ArgumentException e ) {
-                Summa.Core.Log.Exception(e);
+                Log.Exception(e);
             }
         }
         
@@ -283,12 +288,12 @@ namespace Summa.Gui {
             
             SetTag = &quot;Searches&quot;;
             
-            Summa.Data.Search search = new Summa.Data.Search(&quot;summasearch://read:false&quot;);
+            Search search = new Search(&quot;summasearch://read:false&quot;);
             search.Name = &quot;Unread items&quot;;
             search.AddSearchTerm(&quot;read&quot;, &quot;False&quot;);
             AddNewFeed(search);
             
-            search = new Summa.Data.Search(&quot;summasearch://flagged:true&quot;);
+            search = new Search(&quot;summasearch://flagged:true&quot;);
             search.Name = &quot;Flagged items&quot;;
             search.AddSearchTerm(&quot;flagged&quot;, &quot;True&quot;);
             AddNewFeed(search);
@@ -297,13 +302,13 @@ namespace Summa.Gui {
         private void PopulateWithFeeds(string tag) {            
             store.Clear();
             
-            feeds = Summa.Data.Core.GetFeeds(tag);
+            feeds = Feeds.GetFeeds(tag);
             
             SetTag = tag;
             
-            foreach (Summa.Data.Feed feed in feeds) {
+            foreach (Feed feed in feeds) {
                 if ( tag == SetTag ) {
-                    Gtk.TreeIter iter;
+                    TreeIter iter;
                     iter = store.Append();
                     
                     AppendFeed(feed, iter);
@@ -314,8 +319,7 @@ namespace Summa.Gui {
         }
         
         public bool GoToNextUnreadFeed() {
-            Gtk.TreeModel selectmodel;
-            
+            TreeModel selectmodel;
             if ( Selection.CountSelectedRows() != 0 ) {
                 Selection.GetSelected(out selectmodel, out iter);
             } else { store.GetIterFirst(out iter); }
@@ -323,7 +327,8 @@ namespace Summa.Gui {
             bool has_unread = false;
             
             while ( !has_unread ) {
-                GLib.Value readvalue = new GLib.Value(true);
+                GLib.Value readvalue = GLib.Value.Empty;
+                
                 if ( !store.IterIsValid(iter) ) {
                     break;
                 }
@@ -342,7 +347,7 @@ namespace Summa.Gui {
                 store.GetIterFirst(out iter);
                 
                 while ( !has_unread ) {
-                    GLib.Value readvalue = new GLib.Value(false);
+                    GLib.Value readvalue = GLib.Value.Empty;
                     
                     if ( !store.IterIsValid(iter) ) {
                         break;</diff>
      <filename>src/Summa.Gui.FeedView.cs</filename>
    </modified>
    <modified>
      <diff>@@ -24,8 +24,14 @@
 // OTHER DEALINGS IN THE SOFTWARE.
 
 using System;
-using Gtk;
 using System.Collections;
+using System.Threading;
+using Gtk;
+
+using Summa.Core;
+using Summa.Core.Exceptions;
+using Summa.Data;
+using Summa.Gui;
 
 namespace Summa.Gui {
     public class ProgressEventArgs : EventArgs {
@@ -34,57 +40,57 @@ namespace Summa.Gui {
         public ProgressEventArgs() {}
     }
     
-    public class FirstRun : Gtk.Window {
-        private Gtk.VBox vbox;
-        private Gtk.HBox hbox;
-        private Gtk.HButtonBox bbox;
-        private Gtk.Image image;
-        private Gtk.Table table;
-        private Gtk.Label label;
-        private Gtk.FileChooserDialog fcdialog;
-        private Gtk.FileChooserButton fcbutton;
-        private Gtk.Button cancel_button;
-        private Gtk.Button add_button;
-        private Gtk.ProgressBar pb;
+    public class FirstRun : Window {
+        private VBox vbox;
+        private HBox hbox;
+        private HButtonBox bbox;
+        private Image image;
+        private Table table;
+        private Label label;
+        private FileChooserDialog fcdialog;
+        private FileChooserButton fcbutton;
+        private Button cancel_button;
+        private Button add_button;
+        private ProgressBar pb;
         
         private ArrayList failed_feeds;
         
-        public FirstRun() : base(Gtk.WindowType.Toplevel) {
-            IconName = Gtk.Stock.Convert;
+        public FirstRun() : base(WindowType.Toplevel) {
+            IconName = Stock.Convert;
             Title = &quot;Import OPML file&quot;;
             
             Resizable = false;
             BorderWidth = 6;
             
-            vbox = new Gtk.VBox(false, 6);
+            vbox = new VBox(false, 6);
             Add(vbox);
             
-            hbox = new Gtk.HBox(false, 6);
+            hbox = new HBox(false, 6);
             vbox.PackStart(hbox);
             
-            image = new Gtk.Image(&quot;dialog-question&quot;, Gtk.IconSize.Dialog);
+            image = new Image(&quot;dialog-question&quot;, IconSize.Dialog);
             hbox.PackStart(image);
             
-            table = new Gtk.Table(2, 3, false);
+            table = new Table(2, 3, false);
             table.RowSpacing = 6;
             hbox.PackStart(table);
             
-            label = new Gtk.Label(&quot;To import feeds, select an OPML file.&quot;);
+            label = new Label(&quot;To import feeds, select an OPML file.&quot;);
             label.LineWrap = true;
             table.Attach(label, 1, 2, 0, 1);
             
-            fcdialog = new Summa.Gui.OpmlDialog();
-            fcbutton = new Gtk.FileChooserButton(fcdialog);
+            fcdialog = new OpmlDialog();
+            fcbutton = new FileChooserButton(fcdialog);
             table.Attach(fcbutton, 1, 2, 1, 2);
             
-            bbox = new Gtk.HButtonBox();
+            bbox = new HButtonBox();
             vbox.PackEnd(bbox);
             
-            cancel_button = new Gtk.Button(Gtk.Stock.Cancel);
+            cancel_button = new Button(Stock.Cancel);
             cancel_button.Clicked += OnCancel;
             bbox.PackEnd(cancel_button);
             
-            add_button = new Gtk.Button(Gtk.Stock.Convert);
+            add_button = new Button(Stock.Convert);
             add_button.Clicked += new EventHandler(OnImport);
             bbox.PackEnd(add_button);
         }
@@ -97,11 +103,11 @@ namespace Summa.Gui {
             Title = &quot;Importing...&quot;;
             add_button.Sensitive = false;
             
-            pb = new Gtk.ProgressBar();
+            pb = new ProgressBar();
             table.Attach(pb, 1, 2, 1, 2);
             pb.Show();
             
-            System.Threading.Thread thread = new System.Threading.Thread(ImportThread);
+            Thread thread = new Thread(ImportThread);
             thread.Start();
         }
         
@@ -110,24 +116,24 @@ namespace Summa.Gui {
             
             if ( fcdialog.Uris.Length &gt; 0 ) {
                 string uri = fcdialog.Uri;
-                ArrayList feeds = Summa.Data.Core.ImportOpml(uri);
+                ArrayList feeds = Feeds.ImportOpml(uri);
                 double step = 1.0/feeds.Count;
                 double progress = 0.0;
                 
                 foreach ( string feed in feeds ) {
-                    Summa.Core.NotificationEventArgs args = new Summa.Core.NotificationEventArgs();
+                    NotificationEventArgs args = new NotificationEventArgs();
                     args.Message = &quot;Importing feed \&quot;&quot;+feed+&quot;\&quot;&quot;;
                     Gtk.Application.Invoke(this, args, new EventHandler(OnNotify));
                     
                     bool it_worked = true;
                     
                     try {
-                        Summa.Data.Core.RegisterFeed(feed);
+                        Feeds.RegisterFeed(feed);
                         it_worked = true;
-                    } catch ( Summa.Core.Exceptions.BadFeed e ) {
-                        Summa.Core.Log.Exception(e);
+                    } catch ( BadFeed e ) {
+                        Log.Exception(e);
                         
-                        args = new Summa.Core.NotificationEventArgs();
+                        args = new NotificationEventArgs();
                         args.Message = &quot;Import of feed \&quot;&quot;+feed+&quot;\&quot; failed&quot;;
                         Gtk.Application.Invoke(this, args, new EventHandler(OnNotify));
                         
@@ -136,14 +142,14 @@ namespace Summa.Gui {
                         it_worked = false;
                     }
                     
-                    Summa.Gui.ProgressEventArgs pargs = new Summa.Gui.ProgressEventArgs();
+                    ProgressEventArgs pargs = new ProgressEventArgs();
                     pargs.Progress = progress;
                     Gtk.Application.Invoke(this, pargs, new EventHandler(OnProgress));
                     
                     progress += step;
                     
                     if ( it_worked ) {
-                        args = new Summa.Core.NotificationEventArgs();
+                        args = new NotificationEventArgs();
                         args.Message = &quot;Import of feed \&quot;&quot;+feed+&quot;\&quot; was successful&quot;;
                         Gtk.Application.Invoke(this, args, new EventHandler(OnNotify));
                     }
@@ -154,17 +160,17 @@ namespace Summa.Gui {
         }
         
         private void OnDialog(object obj, EventArgs args) {
-            Window md = new Summa.Gui.MessageDialog(failed_feeds);
+            Window md = new MessageDialog(failed_feeds);
             md.ShowAll();
         }
         
         private void OnNotify(object obj, EventArgs args) {
-            Summa.Core.NotificationEventArgs iargs = (Summa.Core.NotificationEventArgs)args;
-            Summa.Core.Notifier.Notify(iargs.Message);
+            NotificationEventArgs iargs = (NotificationEventArgs)args;
+            Notifier.Notify(iargs.Message);
         }
         
         private void OnProgress(object obj, EventArgs args) {
-            Summa.Gui.ProgressEventArgs pargs = (Summa.Gui.ProgressEventArgs)args;
+            ProgressEventArgs pargs = (ProgressEventArgs)args;
             pb.Fraction = pargs.Progress;
         }
     }</diff>
      <filename>src/Summa.Gui.FirstRun.cs</filename>
    </modified>
    <modified>
      <diff>@@ -26,6 +26,9 @@
 using System;
 using NDesk.DBus;
 
+using Summa.Core;
+using Summa.Gui;
+
 namespace Summa.Gui {
     [Interface (&quot;org.gnome.Dieu&quot;)]
     public interface IDieu {</diff>
      <filename>src/Summa.Gui.IDieu.cs</filename>
    </modified>
    <modified>
      <diff>@@ -27,12 +27,16 @@ using System;
 using System.Collections;
 using Gtk;
 
+using Summa.Core;
+using Summa.Data;
+using Summa.Gui;
+
 namespace Summa.Gui {
-    public class ItemNotebook : Gtk.Notebook {
-        public Summa.Gui.WebKitView CurrentView {
+    public class ItemNotebook : Notebook {
+        public WebKitView CurrentView {
             get {
-                Bin c = (Gtk.Bin)GetNthPage(Page);
-                return (Summa.Gui.WebKitView)c.Child;
+                Bin c = (Bin)GetNthPage(Page);
+                return (WebKitView)c.Child;
             }
         }
         
@@ -49,20 +53,20 @@ namespace Summa.Gui {
         }
         
         public void Load(Summa.Data.Item item) {
-            Gtk.HBox container = new Gtk.HBox();
-            Gtk.Label label = new Gtk.Label(item.Title);
+            HBox container = new HBox();
+            Label label = new Label(item.Title);
             container.PackStart(label);
-            Gtk.Button button = new Gtk.Button(new Gtk.Image(Gtk.IconTheme.Default.LookupIcon(&quot;gtk-close&quot;, 16, Gtk.IconLookupFlags.NoSvg).LoadIcon()));
+            Button button = new Button(new Image(IconTheme.Default.LookupIcon(&quot;gtk-close&quot;, 16, IconLookupFlags.NoSvg).LoadIcon()));
             button.Clicked += OnClicked;
-            button.Relief = Gtk.ReliefStyle.None;
+            button.Relief = ReliefStyle.None;
             button.SetSizeRequest(20, 20);
             container.PackEnd(button);
             
-            Summa.Gui.WebKitView view = new Summa.Gui.WebKitView();
+            WebKitView view = new WebKitView();
             view.notebook = this;
-            ScrolledWindow view_swin = new Gtk.ScrolledWindow(new Gtk.Adjustment(0, 0, 0, 0, 0, 0), new Gtk.Adjustment(0, 0, 0, 0, 0, 0));
+            ScrolledWindow view_swin = new ScrolledWindow(new Adjustment(0, 0, 0, 0, 0, 0), new Adjustment(0, 0, 0, 0, 0, 0));
             view_swin.Add(view);
-            view_swin.SetPolicy(Gtk.PolicyType.Automatic, Gtk.PolicyType.Automatic);
+            view_swin.SetPolicy(PolicyType.Automatic, PolicyType.Automatic);
             view.Render(item);
             
             hash.Add(container, view);
@@ -79,22 +83,22 @@ namespace Summa.Gui {
         }
         
         public void Load(string content) {
-            Gtk.HBox container = new Gtk.HBox();
-            Gtk.Label label = new Gtk.Label(&quot;Summa&quot;);
+            HBox container = new HBox();
+            Label label = new Label(&quot;Summa&quot;);
             container.PackStart(label);
             if ( NPages != 0 ) {
-                Gtk.Button button = new Gtk.Button(new Gtk.Image(Gtk.IconTheme.Default.LookupIcon(&quot;gtk-close&quot;, 16, Gtk.IconLookupFlags.NoSvg).LoadIcon()));
+                Button button = new Button(new Image(IconTheme.Default.LookupIcon(&quot;gtk-close&quot;, 16, IconLookupFlags.NoSvg).LoadIcon()));
                 button.Clicked += OnClicked;
-                button.Relief = Gtk.ReliefStyle.None;
+                button.Relief = ReliefStyle.None;
                 button.SetSizeRequest(20, 20);
                 container.PackEnd(button);
             }
             
-            Summa.Gui.WebKitView view = new Summa.Gui.WebKitView();
+            WebKitView view = new WebKitView();
             view.notebook = this;
-            ScrolledWindow view_swin = new Gtk.ScrolledWindow(new Gtk.Adjustment(0, 0, 0, 0, 0, 0), new Gtk.Adjustment(0, 0, 0, 0, 0, 0));
+            ScrolledWindow view_swin = new ScrolledWindow(new Adjustment(0, 0, 0, 0, 0, 0), new Adjustment(0, 0, 0, 0, 0, 0));
             view_swin.Add(view);
-            view_swin.SetPolicy(Gtk.PolicyType.Automatic, Gtk.PolicyType.Automatic);
+            view_swin.SetPolicy(PolicyType.Automatic, PolicyType.Automatic);
             view.Render(content);
             
             hash.Add(container, view);
@@ -111,20 +115,20 @@ namespace Summa.Gui {
         }
         
         public void LoadUri(string uri) {
-            Gtk.HBox container = new Gtk.HBox();
-            Gtk.Label label = new Gtk.Label(uri);
+            HBox container = new HBox();
+            Label label = new Label(uri);
             container.PackStart(label);
-            Gtk.Button button = new Gtk.Button(new Gtk.Image(Gtk.IconTheme.Default.LookupIcon(&quot;gtk-close&quot;, 16, Gtk.IconLookupFlags.NoSvg).LoadIcon()));
+            Button button = new Button(new Image(IconTheme.Default.LookupIcon(&quot;gtk-close&quot;, 16, IconLookupFlags.NoSvg).LoadIcon()));
             button.Clicked += OnClicked;
-            button.Relief = Gtk.ReliefStyle.None;
+            button.Relief = ReliefStyle.None;
             button.SetSizeRequest(20, 20);
             container.PackEnd(button);
             
-            Summa.Gui.WebKitView view = new Summa.Gui.WebKitView();
+            WebKitView view = new WebKitView();
             view.notebook = this;
-            ScrolledWindow view_swin = new Gtk.ScrolledWindow(new Gtk.Adjustment(0, 0, 0, 0, 0, 0), new Gtk.Adjustment(0, 0, 0, 0, 0, 0));
+            ScrolledWindow view_swin = new ScrolledWindow(new Adjustment(0, 0, 0, 0, 0, 0), new Adjustment(0, 0, 0, 0, 0, 0));
             view_swin.Add(view);
-            view_swin.SetPolicy(Gtk.PolicyType.Automatic, Gtk.PolicyType.Automatic);
+            view_swin.SetPolicy(PolicyType.Automatic, PolicyType.Automatic);
             view.RenderUri(uri);
             
             hash.Add(container, view);
@@ -141,8 +145,8 @@ namespace Summa.Gui {
         }
         
         private void OnClicked(object obj, EventArgs args) {
-            Button b = (Gtk.Button)obj;
-            Gtk.Widget o = (Gtk.Widget)hash[b.Parent];
+            Button b = (Button)obj;
+            Widget o = (Widget)hash[b.Parent];
             int pos = PageNum(o.Parent);
             RemovePage(pos);
             hash.Remove(b.Parent);</diff>
      <filename>src/Summa.Gui.ItemNotebook.cs</filename>
    </modified>
    <modified>
      <diff>@@ -29,20 +29,24 @@ using Gdk;
 using System.Collections;
 using System.Linq;
 
+using Summa.Core;
+using Summa.Data;
+using Summa.Gui;
+
 namespace Summa.Gui {
-    public class ItemView : Gtk.TreeView {
-        public Gtk.ListStore store;
-        private Gtk.IconTheme icon_theme;
+    public class ItemView : TreeView {
+        public ListStore store;
+        private IconTheme icon_theme;
         private Gdk.Pixbuf icon;
         
-        private Summa.Data.ISource feedobj;
+        private ISource feedobj;
         private ArrayList items;
         private Hashtable itemhash;
         
-        private Gtk.TreeIter iter;
+        private TreeIter iter;
         
-        private Gtk.TreeViewColumn column_Date;
-        private Gtk.TreeViewColumn column_Title;
+        private TreeViewColumn column_Date;
+        private TreeViewColumn column_Title;
         
         public bool HasSelected {
             get {
@@ -56,7 +60,7 @@ namespace Summa.Gui {
         
         public Summa.Data.Item Selected {
             get {
-                Gtk.TreeModel selectmodel;
+                TreeModel selectmodel;
                 if ( Selection.CountSelectedRows() != 0 ) {
                     Selection.GetSelected(out selectmodel, out iter);
                 } else { store.GetIterFirst(out iter); }
@@ -66,28 +70,28 @@ namespace Summa.Gui {
         
         public ItemView() {
             // set up the liststore for the view
-            store = new Gtk.ListStore(typeof(Gdk.Pixbuf), typeof(bool), typeof(bool), typeof(string), typeof(string), typeof(string), typeof(int));
+            store = new ListStore(typeof(Gdk.Pixbuf), typeof(bool), typeof(bool), typeof(string), typeof(string), typeof(string), typeof(int));
             Model = store;
             
             // set up the columns for the view
-            InsertColumn(-1, &quot;Read&quot;, new Gtk.CellRendererPixbuf(), &quot;pixbuf&quot;, 0);
-            CellRendererText trender = new Gtk.CellRendererText();
+            InsertColumn(-1, &quot;Read&quot;, new CellRendererPixbuf(), &quot;pixbuf&quot;, 0);
+            CellRendererText trender = new CellRendererText();
             
-            column_Date = new Gtk.TreeViewColumn(&quot;Date&quot;, trender, &quot;text&quot;, 3);
+            column_Date = new TreeViewColumn(&quot;Date&quot;, trender, &quot;text&quot;, 3);
             column_Date.AddAttribute(trender, &quot;weight&quot;, 6);
             column_Date.SortColumnId = 3;
             column_Date.SortIndicator = true;
             AppendColumn(column_Date);
-            column_Title = new Gtk.TreeViewColumn(&quot;Title&quot;, trender, &quot;text&quot;, 4);
+            column_Title = new TreeViewColumn(&quot;Title&quot;, trender, &quot;text&quot;, 4);
             column_Title.AddAttribute(trender, &quot;weight&quot;, 6);
             AppendColumn(column_Title);
             
             RulesHint = true;
             HeadersClickable = true;
-            store.SetSortColumnId(3, Gtk.SortType.Descending);
+            store.SetSortColumnId(3, SortType.Descending);
             
             // set up the icon theme so that we can make stuff pretty 
-            icon_theme = Gtk.IconTheme.Default;
+            icon_theme = IconTheme.Default;
         }
         
         private void PopulateItem(Summa.Data.Item item) {
@@ -95,16 +99,16 @@ namespace Summa.Gui {
             try {
                 iter = (TreeIter)itemhash[item.Uri];
             } catch ( NullReferenceException e ) {
-                Summa.Core.Log.Exception(e);
+                Log.Exception(e);
                 iter = store.Append();
                 itemhash.Add(item.Uri, iter);
             }
             
             if (!item.Read) {
-                icon = icon_theme.LookupIcon(&quot;feed-item&quot;, 16, Gtk.IconLookupFlags.NoSvg).LoadIcon();
+                icon = icon_theme.LookupIcon(&quot;feed-item&quot;, 16, IconLookupFlags.NoSvg).LoadIcon();
                 store.SetValue(iter, 6, (int)Pango.Weight.Bold);
             } else if (item.Flagged) {
-                icon = icon_theme.LookupIcon(&quot;emblem-important&quot;, 16, Gtk.IconLookupFlags.NoSvg).LoadIcon();
+                icon = icon_theme.LookupIcon(&quot;emblem-important&quot;, 16, IconLookupFlags.NoSvg).LoadIcon();
                 store.SetValue(iter, 6, (int)Pango.Weight.Normal);
             } else {
                 icon = new Gdk.Pixbuf(Gdk.Colorspace.Rgb, false, 0, 0, 0);
@@ -124,11 +128,11 @@ namespace Summa.Gui {
                 TreeIter iter = (TreeIter)itemhash[item.Uri];
                 store.Remove(ref iter);
             } catch ( Exception e ) {
-                Summa.Core.Log.Exception(e);
+                Log.Exception(e);
             }
         }
         
-        public void Populate(Summa.Data.ISource feed) {
+        public void Populate(ISource feed) {
             feedobj = feed;
             items = feed.Items;
             items.Reverse();
@@ -145,13 +149,13 @@ namespace Summa.Gui {
                 }
             }
             
-            Summa.Core.Application.Database.FeedDeleted += OnFeedDeleted;
-            Summa.Core.Application.Database.ItemAdded += OnItemAdded;
-            Summa.Core.Application.Database.ItemDeleted += OnItemDeleted;
-            Summa.Core.Application.Database.ItemChanged += OnItemChanged;
+            Database.FeedDeleted += OnFeedDeleted;
+            Database.ItemAdded += OnItemAdded;
+            Database.ItemDeleted += OnItemDeleted;
+            Database.ItemChanged += OnItemChanged;
         }
         
-        private void OnFeedDeleted(object obj, Summa.Core.AddedEventArgs args) {
+        private void OnFeedDeleted(object obj, AddedEventArgs args) {
             if ( feedobj.Url == args.Uri ) {
                 Gtk.Application.Invoke(this, new EventArgs(), new EventHandler(InvokeStoreClear));
             }
@@ -161,37 +165,37 @@ namespace Summa.Gui {
             store.Clear();
         }
         
-        private void OnItemAdded(object obj, Summa.Core.AddedEventArgs args) {
+        private void OnItemAdded(object obj, AddedEventArgs args) {
             if ( feedobj.Url == args.FeedUri ) {
                 Gtk.Application.Invoke(this, args, new EventHandler(InvokeAddItem));
             }
         }
         
         private void InvokeAddItem(object obj, EventArgs args) {
-            Summa.Core.AddedEventArgs aargs = (Summa.Core.AddedEventArgs)args;
+            AddedEventArgs aargs = (AddedEventArgs)args;
             PopulateItem(new Summa.Data.Item(aargs.Uri, aargs.FeedUri));
         }
         
-        private void OnItemDeleted(object obj, Summa.Core.AddedEventArgs args) {
+        private void OnItemDeleted(object obj, AddedEventArgs args) {
             if ( feedobj.Url == args.FeedUri ) {
                 Gtk.Application.Invoke(this, args, new EventHandler(InvokeDeleteItem));
             }
         }
         
         private void InvokeDeleteItem(object obj, EventArgs args) {
-            Summa.Core.AddedEventArgs aargs = (Summa.Core.AddedEventArgs)args;
+            AddedEventArgs aargs = (AddedEventArgs)args;
             DeleteItem(new Summa.Data.Item(aargs.Uri, aargs.FeedUri));
         }
             
         
-        private void OnItemChanged(object obj, Summa.Core.ChangedEventArgs args ) {
+        private void OnItemChanged(object obj, ChangedEventArgs args ) {
             if ( args.FeedUri == feedobj.Url ) {
                 Gtk.Application.Invoke(this, args, new EventHandler(InvokeChangeItem));
             }
         }
         
         private void InvokeChangeItem(object obj, EventArgs args) {
-            Summa.Core.ChangedEventArgs aargs = (Summa.Core.ChangedEventArgs)args;
+            ChangedEventArgs aargs = (ChangedEventArgs)args;
             PopulateItem(new Summa.Data.Item(aargs.Uri, aargs.FeedUri));
         }
         
@@ -223,7 +227,7 @@ namespace Summa.Gui {
                 
                 items = feedobj.Items;
             } catch ( Exception e ) {
-                Summa.Core.Log.Exception(e, &quot;No feed selected&quot;);
+                Log.Exception(e, &quot;No feed selected&quot;);
             }
         }
         
@@ -239,7 +243,7 @@ namespace Summa.Gui {
         
         public void GoToPreviousItem() {
             if ( Selection.CountSelectedRows() != 0 ) {
-                Gtk.TreeModel selectmodel;
+                TreeModel selectmodel;
                 Selection.GetSelected(out selectmodel, out iter);
             } else {
                 store.GetIterFirst(out iter);
@@ -257,14 +261,14 @@ namespace Summa.Gui {
         
         public bool GoToNextItem() {
             if ( Selection.CountSelectedRows() != 0 ) {
-                Gtk.TreeModel selectmodel;
+                TreeModel selectmodel;
                 Selection.GetSelected(out selectmodel, out iter);
             } else { store.GetIterFirst(out iter); }
             
             bool has_unread = false;
             
             while ( !has_unread ) {
-                GLib.Value readvalue = new GLib.Value(false);
+                GLib.Value readvalue = GLib.Value.Empty;
                 if ( !store.IterIsValid(iter) ) {
                     break;
                 }
@@ -286,7 +290,7 @@ namespace Summa.Gui {
             store.GetIterFirst(out iter);
             
             while ( true ) {
-                GLib.Value readvalue = new GLib.Value(false);
+                GLib.Value readvalue = GLib.Value.Empty;
                 if (!store.IterIsValid(iter)) {
                     break;
                 }
@@ -302,7 +306,7 @@ namespace Summa.Gui {
             }
         }
         
-        private Summa.Data.Item ItemFromIter(Gtk.TreeIter treeiter) {
+        private Summa.Data.Item ItemFromIter(TreeIter treeiter) {
             string val = (string)store.GetValue(iter, 5);
             bool fail = false;
             Summa.Data.Item item = null;
@@ -317,7 +321,7 @@ namespace Summa.Gui {
             }
             
             if ( fail ) {
-                item = Summa.Data.Core.GetItem(val);
+                item = Feeds.GetItem(val);
             }
             
             return item;
@@ -366,7 +370,7 @@ namespace Summa.Gui {
                 
                 return year+&quot;/&quot;+month+&quot;/&quot;+day+&quot; at &quot;+hour+&quot;:&quot;+minute+&quot;:&quot;+second;
             } catch ( Exception e ) {
-                Summa.Core.Log.Exception(e);
+                Log.Exception(e);
                 return &quot;&quot;;
             }
         }</diff>
      <filename>src/Summa.Gui.ItemView.cs</filename>
    </modified>
    <modified>
      <diff>@@ -25,23 +25,25 @@
 
 using System;
 using System.Collections;
-
 using Gtk;
 
+using Summa.Core;
+using Summa.Gui;
+
 namespace Summa.Gui {
-    public class MessageDialog : Gtk.Window {
-        private Gtk.VBox vbox;
-        private Gtk.HBox hbox;
-        private Gtk.HButtonBox bbox;
-        private Gtk.Image image;
-        private Gtk.Table table;
-        private Gtk.Label label;
-        private Gtk.TextBuffer buffer;
-        private Gtk.TextView textview;
-        private Gtk.ScrolledWindow textviewsw;
-        private Gtk.Button close_button;
+    public class MessageDialog : Window {
+        private VBox vbox;
+        private HBox hbox;
+        private HButtonBox bbox;
+        private Image image;
+        private Table table;
+        private Label label;
+        private TextBuffer buffer;
+        private TextView textview;
+        private ScrolledWindow textviewsw;
+        private Button close_button;
         
-        public MessageDialog(ArrayList list) : base(Gtk.WindowType.Toplevel) {
+        public MessageDialog(ArrayList list) : base(WindowType.Toplevel) {
             Title = &quot;Error&quot;;
             IconName = &quot;dialog-error&quot;;
             
@@ -50,49 +52,49 @@ namespace Summa.Gui {
             Resizable = false;
             BorderWidth = 6;
             
-            vbox = new Gtk.VBox(false, 6);
+            vbox = new VBox(false, 6);
             Add(vbox);
-            hbox = new Gtk.HBox(false, 6);
+            hbox = new HBox(false, 6);
             
             vbox.PackStart(hbox);
             
-            image = new Gtk.Image(Gtk.Stock.DialogError, Gtk.IconSize.Dialog);
+            image = new Image(Stock.DialogError, IconSize.Dialog);
             hbox.PackStart(image);
             
-            table = new Gtk.Table(2, 3, false);
+            table = new Table(2, 3, false);
             table.RowSpacing = 6;
             hbox.PackEnd(table);
             
-            label = new Gtk.Label();
+            label = new Label();
             label.Markup = &quot;&lt;big&gt;&lt;b&gt;Some feeds failed to import&lt;/b&gt;&lt;/big&gt;&quot;;
             table.Attach(label, 1, 2, 0, 1);
             
-            buffer = new Gtk.TextBuffer(new Gtk.TextTagTable());
+            buffer = new TextBuffer(new TextTagTable());
             foreach ( string feed in list ) {
                 buffer.Text = buffer.Text + feed+&quot;\n&quot;;;
             }
             
-            textview = new Gtk.TextView(buffer);
+            textview = new TextView(buffer);
             textview.Editable = false;
-            textview.WrapMode = Gtk.WrapMode.Word;
+            textview.WrapMode = WrapMode.Word;
             textview.SetSizeRequest(400, 150);
             
-            textviewsw = new Gtk.ScrolledWindow(new Gtk.Adjustment(0, 0, 0, 0, 0, 0), new Gtk.Adjustment(0, 0, 0, 0, 0, 0));
-            textviewsw.ShadowType = Gtk.ShadowType.In;
-            textviewsw.SetPolicy(Gtk.PolicyType.Automatic, Gtk.PolicyType.Automatic);
+            textviewsw = new ScrolledWindow(new Adjustment(0, 0, 0, 0, 0, 0), new Adjustment(0, 0, 0, 0, 0, 0));
+            textviewsw.ShadowType = ShadowType.In;
+            textviewsw.SetPolicy(PolicyType.Automatic, PolicyType.Automatic);
             textviewsw.Add(textview);
             table.Attach(textviewsw, 1, 2, 1, 2);
             
-            bbox = new Gtk.HButtonBox();
-            bbox.Layout = Gtk.ButtonBoxStyle.End;
+            bbox = new HButtonBox();
+            bbox.Layout = ButtonBoxStyle.End;
             bbox.Spacing = 6;
             vbox.PackEnd(bbox);
                 
-            close_button = new Gtk.Button(Gtk.Stock.Close);
+            close_button = new Button(Stock.Close);
             close_button.Clicked += new EventHandler(OnClose);
             bbox.PackStart(close_button);
             
-            TransientFor = (Summa.Gui.Browser)Summa.Core.Application.Browsers[0];
+            TransientFor = (Browser)Summa.Core.Application.Browsers[0];
         }
         
         private void OnClose(object obj, EventArgs args) {</diff>
      <filename>src/Summa.Gui.MessageDialog.cs</filename>
    </modified>
    <modified>
      <diff>@@ -24,9 +24,12 @@
 // OTHER DEALINGS IN THE SOFTWARE.
 
 using System;
-using Gtk;
 using System.Net;
 using System.Collections;
+using Gtk;
+
+using Summa.Core;
+using Summa.Gui;
 
 namespace Summa.Gui {
     public class NativeBookmarker : Summa.Core.IBookmarker {</diff>
      <filename>src/Summa.Gui.NativeBookmarker.cs</filename>
    </modified>
    <modified>
      <diff>@@ -26,6 +26,9 @@
 using System;
 using System.Collections;
 
+using Summa.Core;
+using Summa.Gui;
+
 namespace Summa.Gui {
     public class NativeTheme : Summa.Core.ITheme {
         public string Name {</diff>
      <filename>src/Summa.Gui.NativeTheme.cs</filename>
    </modified>
    <modified>
      <diff>@@ -26,16 +26,19 @@
 using System;
 using Gtk;
 
+using Summa.Core;
+using Summa.Gui;
+
 namespace Summa.Gui {
     public class NotificationBar : Gtk.Statusbar {
         private uint cid;
         
         public NotificationBar() {
             cid = 0;
-            Summa.Core.Notifier.NewMessage += OnNotification;
+            Notifier.NewMessage += OnNotification;
         }
         
-        private void OnNotification(object obj, Summa.Core.NotificationEventArgs args) {
+        private void OnNotification(object obj, NotificationEventArgs args) {
             ShowMessage(args.Message);
         }
         </diff>
      <filename>src/Summa.Gui.NotificationBar.cs</filename>
    </modified>
    <modified>
      <diff>@@ -27,15 +27,15 @@ using System;
 using Gtk;
 
 namespace Summa.Gui {
-    public class OpmlDialog : Gtk.FileChooserDialog {
+    public class OpmlDialog : FileChooserDialog {
         public OpmlDialog() {
             Title = &quot;Select an OPML file&quot;;
-            Action = Gtk.FileChooserAction.Open;
+            Action = FileChooserAction.Open;
             
-            AddButton(Gtk.Stock.Cancel, Gtk.ResponseType.Cancel);
-            AddButton(Gtk.Stock.Open, Gtk.ResponseType.Ok);
+            AddButton(Stock.Cancel, ResponseType.Cancel);
+            AddButton(Stock.Open, ResponseType.Ok);
 
-            DefaultResponse = Gtk.ResponseType.Ok;
+            DefaultResponse = ResponseType.Ok;
         }
     }
 }</diff>
      <filename>src/Summa.Gui.OpmlDialog.cs</filename>
    </modified>
    <modified>
      <diff>@@ -26,6 +26,10 @@
 using System;
 using Gtk;
 
+using Summa.Core;
+using Summa.Data;
+using Summa.Gui;
+
 namespace Summa.Gui {
     public class StatusIcon : Gtk.StatusIcon {
         private int Unread;
@@ -33,12 +37,12 @@ namespace Summa.Gui {
         public StatusIcon() {
             FromIconName = &quot;summa&quot;;
             
-            Unread = Summa.Data.Core.GetUnreadCount();
+            Unread = Feeds.GetUnreadCount();
             
             Activate += new EventHandler(ToggleBrowserStatus);
-            Summa.Core.Application.Database.ItemChanged += OnItemChanged;
-            Summa.Core.Application.Database.ItemAdded += OnItemAdded;
-            Summa.Core.Application.Database.ItemDeleted += OnItemDeleted;
+            Database.ItemChanged += OnItemChanged;
+            Database.ItemAdded += OnItemAdded;
+            Database.ItemDeleted += OnItemDeleted;
             
             UpdateTooltip();
             CheckVisibility();
@@ -51,10 +55,10 @@ namespace Summa.Gui {
         }
         
         public void CheckVisibility() {
-            if ( Summa.Core.Config.ShowStatusIcon ) {
+            if ( Config.ShowStatusIcon ) {
                 bool found = false;
-                foreach ( string url in Summa.Core.Config.IconFeedUris ) {
-                    Summa.Data.Feed feed = Summa.Data.Core.RegisterFeed(url);
+                foreach ( string url in Config.IconFeedUris ) {
+                    Feed feed = Feeds.RegisterFeed(url);
                     
                     if ( feed.HasUnread ) {
                         Visible = true;
@@ -74,7 +78,7 @@ namespace Summa.Gui {
             Summa.Core.Application.ToggleShown();
         }
         
-        private void OnItemChanged(object obj, Summa.Core.ChangedEventArgs args) {
+        private void OnItemChanged(object obj, ChangedEventArgs args) {
             if ( args.ItemProperty == &quot;read&quot; ) {
                 if ( args.Value == &quot;True&quot; ) {
                     Unread--;
@@ -88,14 +92,14 @@ namespace Summa.Gui {
             }
         }
         
-        private void OnItemAdded(object obj, Summa.Core.AddedEventArgs args) {
+        private void OnItemAdded(object obj, AddedEventArgs args) {
             Unread++;
             UpdateTooltip();
             CheckVisibility();
         }
         
-        private void OnItemDeleted(object obj, Summa.Core.AddedEventArgs args) {
-            Unread = Summa.Data.Core.GetUnreadCount();
+        private void OnItemDeleted(object obj, AddedEventArgs args) {
+            Unread = Feeds.GetUnreadCount();
             UpdateTooltip();
             CheckVisibility();
         }</diff>
      <filename>src/Summa.Gui.StatusIcon.cs</filename>
    </modified>
    <modified>
      <diff>@@ -29,15 +29,19 @@ using System.Linq;
 using Gtk;
 using Gdk;
 
+using Summa.Core;
+using Summa.Data;
+using Summa.Gui;
+
 namespace Summa.Gui {
-    public class TagView : Gtk.TreeView {
+    public class TagView : TreeView {
         public ArrayList Tags;
         
-        private Gtk.TreeIter tagiter;
+        private TreeIter tagiter;
         
         public string Selected {
             get {
-                Gtk.TreeModel selectmodel;
+                TreeModel selectmodel;
                 Selection.GetSelected(out selectmodel, out tagiter);
                 string val = (string)Summa.Core.Application.TagStore.GetValue(tagiter, 1);
                 return val;
@@ -49,21 +53,21 @@ namespace Summa.Gui {
             Model = Summa.Core.Application.TagStore;
             
             // set up the columns for the view, and hide them. 
-            InsertColumn(-1, &quot;Pix&quot;, new Gtk.CellRendererPixbuf(), &quot;pixbuf&quot;, 0);
-            InsertColumn(-1, &quot;Tag&quot;, new Gtk.CellRendererText(), &quot;text&quot;, 1);
+            InsertColumn(-1, &quot;Pix&quot;, new CellRendererPixbuf(), &quot;pixbuf&quot;, 0);
+            InsertColumn(-1, &quot;Tag&quot;, new CellRendererText(), &quot;text&quot;, 1);
             HeadersVisible = false;
             
             // set up for NewsKit
-            Tags = Summa.Data.Core.GetTags();
+            Tags = Feeds.GetTags();
             
             if ( Summa.Core.Application.Browsers.Count == 0 ) {
-                Gtk.TreeIter tagiter;
+                TreeIter tagiter;
                 tagiter = Summa.Core.Application.TagStore.Append();
-                Summa.Core.Application.TagStore.SetValue(tagiter, 0, Gtk.IconTheme.Default.LookupIcon(&quot;feed-presence&quot;, 16, Gtk.IconLookupFlags.NoSvg).LoadIcon());
+                Summa.Core.Application.TagStore.SetValue(tagiter, 0, IconTheme.Default.LookupIcon(&quot;feed-presence&quot;, 16, IconLookupFlags.NoSvg).LoadIcon());
                 Summa.Core.Application.TagStore.SetValue(tagiter, 1, &quot;All feeds&quot;);
                 
                 tagiter = Summa.Core.Application.TagStore.Append();
-                Summa.Core.Application.TagStore.SetValue(tagiter, 0, Gtk.IconTheme.Default.LookupIcon(&quot;system-search&quot;, (int)Gtk.IconSize.Menu, Gtk.IconLookupFlags.NoSvg).LoadIcon());
+                Summa.Core.Application.TagStore.SetValue(tagiter, 0, IconTheme.Default.LookupIcon(&quot;system-search&quot;, (int)IconSize.Menu, IconLookupFlags.NoSvg).LoadIcon());
                 Summa.Core.Application.TagStore.SetValue(tagiter, 1, &quot;Searches&quot;);
             
                 foreach ( string tag in Tags ) {
@@ -73,7 +77,7 @@ namespace Summa.Gui {
                 }
             }
             
-            Summa.Core.Application.Database.FeedChanged += OnFeedChanged;
+            Database.FeedChanged += OnFeedChanged;
             
             TreeIter iter;
             Summa.Core.Application.TagStore.GetIterFirst(out iter);
@@ -85,7 +89,7 @@ namespace Summa.Gui {
         }
         
         public void Update() {
-            ArrayList utags = Summa.Data.Core.GetTags();
+            ArrayList utags = Feeds.GetTags();
             
             foreach ( string tag in utags ) {
                 if ( tag != &quot;All&quot; ) {
@@ -94,13 +98,13 @@ namespace Summa.Gui {
                     }
                 }
             }
-            Tags = Summa.Data.Core.GetTags();
+            Tags = Feeds.GetTags();
         }
         
         public void AppendTag(string tag) {
-            Gtk.TreeIter iter;
+            TreeIter iter;
             iter = Summa.Core.Application.TagStore.Append();
-            Summa.Core.Application.TagStore.SetValue(iter, 0, Gtk.IconTheme.Default.LookupIcon(&quot;tag&quot;, 16, Gtk.IconLookupFlags.NoSvg).LoadIcon());
+            Summa.Core.Application.TagStore.SetValue(iter, 0, IconTheme.Default.LookupIcon(&quot;tag&quot;, 16, IconLookupFlags.NoSvg).LoadIcon());
             Summa.Core.Application.TagStore.SetValue(iter, 1, tag);
         }
     }</diff>
      <filename>src/Summa.Gui.TagView.cs</filename>
    </modified>
    <modified>
      <diff>@@ -25,38 +25,41 @@
 
 using System;
 using System.Collections;
-
 using Gtk;
 
+using Summa.Core;
+using Summa.Data;
+using Summa.Gui;
+
 namespace Summa.Gui {
-    public class TagWindow : Gtk.Window {private Gtk.VBox vbox;
-        private Gtk.Table table;
-        private Gtk.ButtonBox bbox;
+    public class TagWindow : Window {private VBox vbox;
+        private Table table;
+        private ButtonBox bbox;
         
-        private Gtk.CellRendererToggle crt;
-        private Gtk.ListStore store;
-        private Gtk.TreeView treeview;
+        private CellRendererToggle crt;
+        private ListStore store;
+        private TreeView treeview;
         
-        public Gtk.ComboBox ComboBox;
+        public ComboBox ComboBox;
         
-        private Gtk.TreeIter iter;
+        private TreeIter iter;
         
         private ArrayList Tags;
         
-        public Summa.Data.Feed Selected {
+        public Feed Selected {
             get {
                 if ( treeview.Selection.CountSelectedRows() != 0 ) {
-                    Gtk.TreeModel selectmodel;
+                    TreeModel selectmodel;
                     treeview.Selection.GetSelected(out selectmodel, out iter);
                 } else { store.GetIterFirst(out iter); }
                 
                 string val = (string)store.GetValue(iter, 2);
                 
-                return Summa.Data.Core.RegisterFeed(val);
+                return Feeds.RegisterFeed(val);
             }
         }
         
-        public TagWindow() : base(Gtk.WindowType.Toplevel) {
+        public TagWindow() : base(WindowType.Toplevel) {
             Tags = new ArrayList();
             
             Title = &quot;Manage your tags&quot;;
@@ -64,26 +67,26 @@ namespace Summa.Gui {
             DeleteEvent += OnClose;
             Resizable = false;
             
-            vbox = new Gtk.VBox();
+            vbox = new VBox();
             vbox.Spacing = 6;
             Add(vbox);
             
-            table = new Gtk.Table(2, 2, false);
+            table = new Table(2, 2, false);
             table.RowSpacing = 6;
             vbox.PackStart(table, false, false, 0);
             
-            bbox = new Gtk.HButtonBox();
-            bbox.Layout = Gtk.ButtonBoxStyle.End;
+            bbox = new HButtonBox();
+            bbox.Layout = ButtonBoxStyle.End;
             
             AddTagsCombobox();
             AddFeedTreeView();
             AddButtons();
             vbox.PackStart(bbox, false, false, 0);
             
-            Summa.Core.Application.Database.FeedChanged += OnFeedChanged;
+            Database.FeedChanged += OnFeedChanged;
         }
         
-        private void OnFeedChanged(object obj, Summa.Core.ChangedEventArgs args ) {
+        private void OnFeedChanged(object obj, ChangedEventArgs args ) {
             if ( args.ItemProperty == &quot;tags&quot; ) {
                 foreach ( string tag in args.Value.Split(',') ) {
                     if ( !Tags.Contains(tag) ) {
@@ -97,8 +100,8 @@ namespace Summa.Gui {
         }
         
         private void AddTagsCombobox() {
-            ComboBox = Gtk.ComboBox.NewText();
-            foreach ( string tag in Summa.Data.Core.GetTags() ) {
+            ComboBox = ComboBox.NewText();
+            foreach ( string tag in Feeds.GetTags() ) {
                 if ( tag != &quot;All&quot; ) {
                     ComboBox.AppendText(tag);
                     Tags.Add(tag);
@@ -107,7 +110,7 @@ namespace Summa.Gui {
             
             ComboBox.Changed += new EventHandler(OnCbUpdateIntervalChanged);
             
-            table.Attach(ComboBox, 0, 1, 0, 1, Gtk.AttachOptions.Fill, Gtk.AttachOptions.Fill, 0, 0);
+            table.Attach(ComboBox, 0, 1, 0, 1, AttachOptions.Fill, AttachOptions.Fill, 0, 0);
         }
         
         private void OnCbUpdateIntervalChanged(object obj, EventArgs args) {
@@ -115,31 +118,31 @@ namespace Summa.Gui {
         }
         
         private void AddFeedTreeView() {
-            store = new Gtk.ListStore(typeof(bool), typeof(string), typeof(string), typeof(Gdk.Pixbuf));
+            store = new ListStore(typeof(bool), typeof(string), typeof(string), typeof(Gdk.Pixbuf));
             
-            crt = new Gtk.CellRendererToggle();
+            crt = new CellRendererToggle();
             crt.Activatable = true;
-            crt.Toggled += new Gtk.ToggledHandler(OnCrtToggled);
+            crt.Toggled += new ToggledHandler(OnCrtToggled);
             
-            CellRendererText trender = new Gtk.CellRendererText();
+            CellRendererText trender = new CellRendererText();
             trender.Ellipsize = Pango.EllipsizeMode.End;
             
-            treeview = new Gtk.TreeView();
+            treeview = new TreeView();
             treeview.Model = store;
             
-            ScrolledWindow treeview_swin = new Gtk.ScrolledWindow(new Gtk.Adjustment(0, 0, 0, 0, 0, 0), new Gtk.Adjustment(0, 0, 0, 0, 0, 0));
+            ScrolledWindow treeview_swin = new ScrolledWindow(new Adjustment(0, 0, 0, 0, 0, 0), new Adjustment(0, 0, 0, 0, 0, 0));
             treeview_swin.Add(treeview);
             treeview_swin.SetSizeRequest(200, 300);
-            treeview_swin.ShadowType = Gtk.ShadowType.In;
-            treeview_swin.SetPolicy(Gtk.PolicyType.Automatic, Gtk.PolicyType.Automatic);
+            treeview_swin.ShadowType = ShadowType.In;
+            treeview_swin.SetPolicy(PolicyType.Automatic, PolicyType.Automatic);
             
-            TreeViewColumn column_Use = new Gtk.TreeViewColumn(&quot;Use&quot;, crt, &quot;active&quot;, 0);
+            TreeViewColumn column_Use = new TreeViewColumn(&quot;Use&quot;, crt, &quot;active&quot;, 0);
             treeview.AppendColumn(column_Use);
             
-            TreeViewColumn column_Icon = new Gtk.TreeViewColumn(&quot;Icon&quot;, new Gtk.CellRendererPixbuf(), &quot;pixbuf&quot;, 3);
+            TreeViewColumn column_Icon = new TreeViewColumn(&quot;Icon&quot;, new CellRendererPixbuf(), &quot;pixbuf&quot;, 3);
             treeview.AppendColumn(column_Icon);
             
-            TreeViewColumn column_Name = new Gtk.TreeViewColumn(&quot;Title&quot;, trender, &quot;text&quot;, 1);
+            TreeViewColumn column_Name = new TreeViewColumn(&quot;Title&quot;, trender, &quot;text&quot;, 1);
             treeview.AppendColumn(column_Name);
             
             table.Attach(treeview_swin, 0, 1, 1, 2);
@@ -147,28 +150,28 @@ namespace Summa.Gui {
         
         private void OnCrtToggled(object obj, ToggledArgs args) {
             TreeIter iter;
-            store.GetIter(out iter, new Gtk.TreePath(args.Path));
+            store.GetIter(out iter, new TreePath(args.Path));
             
             if ( (bool)store.GetValue(iter, 0) ) {
                 store.SetValue(iter, 0, false);
-                Summa.Data.Feed feed = Summa.Data.Core.RegisterFeed((string)store.GetValue(iter, 2));
+                Feed feed = Feeds.RegisterFeed((string)store.GetValue(iter, 2));
                 
                 feed.RemoveTag(ComboBox.ActiveText);
             } else {
                 store.SetValue(iter, 0, true);
-                Summa.Data.Feed feed = Summa.Data.Core.RegisterFeed((string)store.GetValue(iter, 2));
+                Feed feed = Feeds.RegisterFeed((string)store.GetValue(iter, 2));
                 
                 feed.AppendTag(ComboBox.ActiveText);
             }
-            Summa.Gui.Browser b = (Summa.Gui.Browser)Summa.Core.Application.Browsers[0];
+            Browser b = (Browser)Summa.Core.Application.Browsers[0];
             b.TagView.Update();
         }
         
         private void Populate(string tag) {
             store.Clear();
             
-            foreach ( Summa.Data.Feed feed in Summa.Data.Core.GetFeeds() ) {
-                Gtk.TreeIter iter = store.Append();
+            foreach ( Feed feed in Feeds.GetFeeds() ) {
+                TreeIter iter = store.Append();
                 
                 store.SetValue(iter, 0, feed.Tags.Contains(ComboBox.ActiveText));
                 store.SetValue(iter, 1, feed.Name);
@@ -178,17 +181,17 @@ namespace Summa.Gui {
         }
         
         private void AddButtons() {
-            Button add_button = new Gtk.Button(Gtk.Stock.Add);
+            Button add_button = new Button(Stock.Add);
             add_button.Clicked += new EventHandler(OnAdd);
             bbox.PackStart(add_button);
             
-            Button close_button = new Gtk.Button(Gtk.Stock.Close);
+            Button close_button = new Button(Stock.Close);
             close_button.Clicked  += new EventHandler(OnClose);
             bbox.PackStart(close_button);
         }
         
         private void OnAdd(object obj, EventArgs args) {
-            Window t = new Summa.Gui.AddTagDialog(this);
+            Window t = new AddTagDialog(this);
             t.ShowAll();
         }
         </diff>
      <filename>src/Summa.Gui.TagWindow.cs</filename>
    </modified>
    <modified>
      <diff>@@ -24,10 +24,14 @@
 // OTHER DEALINGS IN THE SOFTWARE.
 
 using System;
+using System.Diagnostics;
+
+using Summa.Core;
+using Summa.Gui;
 
 namespace Summa.Gui {
-    public class TotemMediaPlayer : Summa.Core.IMediaPlayer {
-        private System.Diagnostics.Process process;
+    public class TotemMediaPlayer : IMediaPlayer {
+        private Process process;
         private bool still_alive;
         private bool playing;
         
@@ -45,16 +49,16 @@ namespace Summa.Gui {
         
         public void Play(string uri) {
             if ( !playing &amp;&amp; still_alive ) {
-                System.Diagnostics.Process.Start(&quot;totem --play-pause&quot;);
+                Process.Start(&quot;totem --play-pause&quot;);
             } else {
                 still_alive = true;
-                process = System.Diagnostics.Process.Start(String.Format(&quot;totem {0}&quot;, uri));
+                process = Process.Start(String.Format(&quot;totem {0}&quot;, uri));
                 process.Exited += new EventHandler(OnExited);
             }
         }
         
         public bool Pause() {
-            System.Diagnostics.Process.Start(&quot;totem --pause&quot;);
+            Process.Start(&quot;totem --pause&quot;);
             playing = false;
             return true;
         }</diff>
      <filename>src/Summa.Gui.TotemMediaPlayer.cs</filename>
    </modified>
    <modified>
      <diff>@@ -27,7 +27,10 @@ using System;
 using System.Text;
 using Gtk;
 using WebKit;
-using Gnome;
+
+using Summa.Core;
+using Summa.Data;
+using Summa.Gui;
 
 namespace Summa.Gui {
     public class WebSettings : WebKit.WebSettings {
@@ -39,11 +42,11 @@ namespace Summa.Gui {
         }
     }
 
-    public class WebKitView : WebKit.WebView {
+    public class WebKitView : WebView {
         private StringBuilder content = new StringBuilder();
         public Summa.Data.Item SelectedItem;
-        public Summa.Data.ISource SelectedFeed;
-        public Summa.Gui.ItemNotebook notebook;
+        public ISource SelectedFeed;
+        public ItemNotebook notebook;
         
         public WebKitView() {
             NavigationRequested += new NavigationRequestedHandler(OnNavigationRequested);
@@ -52,12 +55,12 @@ namespace Summa.Gui {
             string starting_content = &quot;Welcome to &lt;b&gt;Summa&lt;/b&gt;, a GNOME feed reader.&lt;br /&gt;&lt;br /&gt;This is a preview release, not intended to be used by anyone. Exercise caution.&quot;;
             Render(starting_content);
             
-            ZoomTo(Summa.Core.Config.DefaultZoomLevel);
-            Summa.Core.Notifier.ZoomChanged += OnZoomChanged;
+            ZoomTo(Config.DefaultZoomLevel);
+            Notifier.ZoomChanged += OnZoomChanged;
         }
         
         private void OnZoomChanged(object obj, EventArgs args) {
-            ZoomTo(Summa.Core.Config.DefaultZoomLevel);
+            ZoomTo(Config.DefaultZoomLevel);
         }
         
         public bool CanZoom() {
@@ -67,9 +70,9 @@ namespace Summa.Gui {
         public void ZoomIn() {
             Summa.Gui.WebSettings settings = new Summa.Gui.WebSettings();
             
-            if ( Summa.Core.Config.DefaultZoomLevel &gt; 4 ) {
-                Summa.Core.Config.DefaultZoomLevel++;
-                settings.DefaultFontSize = Summa.Core.Config.DefaultZoomLevel;
+            if ( Config.DefaultZoomLevel &gt; 4 ) {
+                Config.DefaultZoomLevel++;
+                settings.DefaultFontSize = Config.DefaultZoomLevel;
                 
                 Settings = settings;
             }
@@ -78,9 +81,9 @@ namespace Summa.Gui {
         public void ZoomOut() {
             Summa.Gui.WebSettings settings = new Summa.Gui.WebSettings();
             
-            if ( Summa.Core.Config.DefaultZoomLevel-1 &gt; 4 ) {
-                Summa.Core.Config.DefaultZoomLevel--;
-                settings.DefaultFontSize = Summa.Core.Config.DefaultZoomLevel;
+            if ( Config.DefaultZoomLevel-1 &gt; 4 ) {
+                Config.DefaultZoomLevel--;
+                settings.DefaultFontSize = Config.DefaultZoomLevel;
                 
                 Settings = settings;
             }
@@ -88,7 +91,7 @@ namespace Summa.Gui {
         
         public void ZoomTo(int size) {
             Summa.Gui.WebSettings settings = new Summa.Gui.WebSettings();
-            settings.DefaultFontSize = Summa.Core.Config.DefaultZoomLevel;
+            settings.DefaultFontSize = Config.DefaultZoomLevel;
             
             Settings = settings;
         }
@@ -109,7 +112,7 @@ namespace Summa.Gui {
         }
         
         private void OnNavigationRequested(object obj, NavigationRequestedArgs args) {
-            if ( Summa.Core.Config.OpenTabs ) {
+            if ( Config.OpenTabs ) {
                 try {
                     notebook.LoadUri(args.Request.Uri);
                 } catch ( Exception ) {
@@ -119,7 +122,7 @@ namespace Summa.Gui {
                 Gnome.Url.Show(args.Request.Uri);
             }
             
-            args.RetVal = WebKit.NavigationResponse.Ignore;
+            args.RetVal = NavigationResponse.Ignore;
         }
 
         private void OnHoveringOverLink(object obj, HoveringOverLinkArgs args) {
@@ -134,9 +137,9 @@ namespace Summa.Gui {
 
             if (text != String.Empty) {
                 if ( text != null ) {
-                    Summa.Core.Notifier.Notify(&quot;Click to visit &quot; + text);
+                    Notifier.Notify(&quot;Click to visit &quot; + text);
                 } else {
-                    Summa.Core.Notifier.Notify(&quot;&quot;);
+                    Notifier.Notify(&quot;&quot;);
                 }
             }
         }
@@ -150,32 +153,32 @@ namespace Summa.Gui {
         }
         
         public void Render(Summa.Data.Item item) {
-            Render(Summa.Core.Config.Theme.MakeHtml(item));
+            Render(Config.Theme.MakeHtml(item));
             SelectedItem = item;
-            Summa.Core.Application.Database.ItemChanged += OnItemChanged;
+            Database.ItemChanged += OnItemChanged;
         }
         
-        public void Render(Summa.Data.ISource feed) {
-            Render(Summa.Core.Config.Theme.MakeHtml(feed));
+        public void Render(ISource feed) {
+            Render(Config.Theme.MakeHtml(feed));
             SelectedFeed = feed;
-            Summa.Core.Application.Database.FeedChanged += OnFeedChanged;
+            Database.FeedChanged += OnFeedChanged;
             
             /*string all_content = &quot;&quot;;
             
-            foreach ( Summa.Data.Item item in feed.GetItems() ) {
+            foreach ( Item item in feed.GetItems() ) {
                 all_content += MakeItemHtml(item);
                 all_content += &quot;&lt;br/&gt;&lt;br/&gt;&lt;hr/&gt;&quot;;
             }
             Render(all_content);*/
         }
         
-        private void OnFeedChanged(object obj, Summa.Core.ChangedEventArgs args) {
+        private void OnFeedChanged(object obj, ChangedEventArgs args) {
             if ( args.Uri == SelectedFeed.Url ) {
                 Render(content.ToString());
             }
         }
         
-        private void OnItemChanged(object obj, Summa.Core.ChangedEventArgs args) {
+        private void OnItemChanged(object obj, ChangedEventArgs args) {
             if ( args.Uri == SelectedItem.Uri ) {
                 Render(SelectedItem);
             }</diff>
      <filename>src/Summa.Gui.WebKitView.cs</filename>
    </modified>
    <modified>
      <diff>@@ -25,6 +25,9 @@
 
 using System;
 
+using Summa.Core;
+using Summa.Net;
+
 namespace Summa.Net {
     public enum ConnectionState : int {
         Connected,</diff>
      <filename>src/Summa.Net.ConnectionState.cs</filename>
    </modified>
    <modified>
      <diff>@@ -26,6 +26,9 @@
 using System;
 using NDesk.DBus;
 
+using Summa.Core;
+using Summa.Net;
+
 namespace Summa.Net {
     [Interface (&quot;org.gnome.Dieu&quot;)]
     public interface INetworkManager {</diff>
      <filename>src/Summa.Net.INetworkManager.cs</filename>
    </modified>
    <modified>
      <diff>@@ -26,19 +26,22 @@
 using System;
 using NDesk.DBus;
 
+using Summa.Core;
+using Summa.Net;
+
 namespace Summa.Net {
     public static class NetworkManager {
-        public static Summa.Net.ConnectionState Status() {
+        public static ConnectionState Status() {
             try {
-                Summa.Net.INetworkManager nm = NDesk.DBus.Bus.Session.GetObject&lt;Summa.Net.INetworkManager&gt;(&quot;org.freedesktop.NetworkManager&quot;, new ObjectPath(&quot;/org/freedesktop/NetworkManager&quot;));
+                INetworkManager nm = Bus.Session.GetObject&lt;INetworkManager&gt;(&quot;org.freedesktop.NetworkManager&quot;, new ObjectPath(&quot;/org/freedesktop/NetworkManager&quot;));
                 
                 if ( nm.state() == 3 ) {
-                    return Summa.Net.ConnectionState.Connected;
+                    return ConnectionState.Connected;
                 } else {
-                    return Summa.Net.ConnectionState.Offline;
+                    return ConnectionState.Offline;
                 }
             } catch ( Exception ) {
-                return Summa.Net.ConnectionState.Connected;
+                return ConnectionState.Connected;
             }
         }
     }</diff>
      <filename>src/Summa.Net.NetworkManager.cs</filename>
    </modified>
    <modified>
      <diff>@@ -1,4 +1,4 @@
 #!/bin/bash
 
-gmcs -r:Mono.Posix -r:System.Drawing -pkg:ndesk-dbus-1.0 -pkg:ndesk-dbus-glib-1.0 src/Summa.Net.ConnectionState.cs src/Summa.Net.INetworkManager.cs src/Summa.Net.NetworkManager.cs src/MigoRfc822DateTime.cs src/NewsKit.AtomParser.cs src/NewsKit.Core.cs src/NewsKit.Exceptions.cs src/NewsKit.Globals.cs src/NewsKit.IFeedParser.cs src/NewsKit.Item.cs src/NewsKit.OpmlParser.cs src/NewsKit.RdfParser.cs src/NewsKit.Request.cs src/NewsKit.RssParser.cs src/NewsKit.TestBed.cs -out:src/newskit.exe
+gmcs -r:Mono.Posix -r:System.Drawing -pkg:ndesk-dbus-1.0 -pkg:ndesk-dbus-glib-1.0 src/Summa.Net.ConnectionState.cs src/Summa.Net.INetworkManager.cs src/Summa.Net.NetworkManager.cs src/MigoRfc822DateTime.cs src/NewsKit.AtomParser.cs src/NewsKit.Core.cs src/NewsKit.Exceptions.cs src/NewsKit.Globals.cs src/NewsKit.IFeedParser.cs src/NewsKit.Item.cs src/NewsKit.OpmlParser.cs src/NewsKit.RdfParser.cs src/NewsKit.Request.cs src/NewsKit.RssParser.cs src/NewsKit.RssCommon.cs src/NewsKit.TestBed.cs -out:src/newskit.exe
 mono src/newskit.exe</diff>
      <filename>testparser.sh</filename>
    </modified>
  </modified>
  <removed type="array">
    <removed>
      <filename>src/NewsKit.Core.cs</filename>
    </removed>
    <removed>
      <filename>src/Summa.Data.Core.cs</filename>
    </removed>
  </removed>
  <parents type="array">
    <parent>
      <id>8c395209523e0122ad988750785715d47dcb6e3d</id>
    </parent>
  </parents>
  <author>
    <name>Ethan Osten</name>
    <email>eosten@Phineas.(none)</email>
  </author>
  <url>http://github.com/wfarr/newskit/commit/553ad3e0ef5568cfdeede88b1711d692edf39b67</url>
  <id>553ad3e0ef5568cfdeede88b1711d692edf39b67</id>
  <committed-date>2008-10-19T16:58:15-07:00</committed-date>
  <authored-date>2008-10-19T16:58:15-07:00</authored-date>
  <message>I really have no idea where to begin with this one.</message>
  <tree>22db9b49b99cf21b4eaa5078f089ad2a66f1bb9c</tree>
  <committer>
    <name>Ethan Osten</name>
    <email>eosten@Phineas.(none)</email>
  </committer>
</commit>
