[frogr] Use G_DECLARE_FINAL_TYPE everywhere, instead of the usual boilerplate



commit 1739b2d7080949f32ca6977f5f32c3aa1329d930
Author: Mario Sanchez Prada <msanchez gnome org>
Date:   Tue Nov 24 18:47:21 2015 +0000

    Use G_DECLARE_FINAL_TYPE everywhere, instead of the usual boilerplate
    
    This change alone allows getting rid of ~1700 LoC, not too bad.

 NEWS                              |    2 +-
 configure.ac                      |    2 +-
 src/flicksoup/fsp-parser.c        |    5 +-
 src/flicksoup/fsp-parser.h        |   29 +--
 src/flicksoup/fsp-session.c       |  202 +++++------
 src/flicksoup/fsp-session.h       |   32 +--
 src/frogr-account.c               |  344 +++++------------
 src/frogr-account.h               |   27 +--
 src/frogr-add-tags-dialog.c       |   50 +--
 src/frogr-add-tags-dialog.h       |   24 +-
 src/frogr-add-to-group-dialog.c   |  136 +++----
 src/frogr-add-to-group-dialog.h   |   24 +-
 src/frogr-add-to-set-dialog.c     |  136 +++----
 src/frogr-add-to-set-dialog.h     |   24 +-
 src/frogr-config.c                |  586 +++++++++--------------------
 src/frogr-config.h                |   26 +--
 src/frogr-controller.c            |  743 ++++++++++++++-----------------------
 src/frogr-controller.h            |   24 +-
 src/frogr-create-new-set-dialog.c |   95 ++---
 src/frogr-create-new-set-dialog.h |   24 +-
 src/frogr-details-dialog.c        |  400 +++++++++-----------
 src/frogr-details-dialog.h        |   24 +-
 src/frogr-file-loader.c           |  187 ++++------
 src/frogr-file-loader.h           |   23 +-
 src/frogr-group.c                 |   93 ++----
 src/frogr-group.h                 |   23 +-
 src/frogr-live-entry.c            |   61 ++--
 src/frogr-live-entry.h            |   24 +-
 src/frogr-location.c              |   52 +--
 src/frogr-location.h              |   23 +-
 src/frogr-main-view.c             |  676 ++++++++++++++--------------------
 src/frogr-main-view.h             |   24 +-
 src/frogr-model.c                 |  295 +++++----------
 src/frogr-model.h                 |   23 +-
 src/frogr-photoset.c              |  133 ++-----
 src/frogr-photoset.h              |   23 +-
 src/frogr-picture.c               |  474 +++++++----------------
 src/frogr-picture.h               |   23 +-
 src/frogr-settings-dialog.c       |  599 ++++++++++++++----------------
 src/frogr-settings-dialog.h       |   24 +-
 40 files changed, 2033 insertions(+), 3706 deletions(-)
---
diff --git a/NEWS b/NEWS
index 20bf9c9..c5b6a5d 100644
--- a/NEWS
+++ b/NEWS
@@ -4,7 +4,7 @@
   * Use xdg-open instead of gnome-open as a fallback plan to open URIs.
   * Use a GtkMessageDialog for the "Uploading pictures" dialog.
   * Migrated from GSimpleAsyncResult to GTask.
-  * Raised GLib minimum version up to 2.36.
+  * Raised GLib minimum version up to 2.44.
 
 
 0.11 (7 Jan 2015)
diff --git a/configure.ac b/configure.ac
index bfbd778..fb4a658 100644
--- a/configure.ac
+++ b/configure.ac
@@ -17,7 +17,7 @@ CFLAGS="$CFLAGS -DG_DISABLE_SINGLE_INCLUDES -DGTK_DISABLE_SINGLE_INCLUDES -DGSEA
 
 # (Platform independent) dependencies for frogr
 
-GLIB_MIN_VERSION=2.36
+GLIB_MIN_VERSION=2.44
 PKG_CHECK_MODULES(GLIB, glib-2.0 >= $GLIB_MIN_VERSION gthread-2.0)
 FROGR_CFLAGS="$FROGR_CFLAGS $GLIB_CFLAGS"
 FROGR_LIBS="$FROGR_LIBS $GLIB_LIBS"
diff --git a/src/flicksoup/fsp-parser.c b/src/flicksoup/fsp-parser.c
index e335a40..999d38e 100644
--- a/src/flicksoup/fsp-parser.c
+++ b/src/flicksoup/fsp-parser.c
@@ -26,8 +26,11 @@
 #include <libxml/parser.h>
 #include <libxml/xpath.h>
 
-G_DEFINE_TYPE (FspParser, fsp_parser, G_TYPE_OBJECT)
+struct _FspParser {
+  GObject parent;
+};
 
+G_DEFINE_TYPE (FspParser, fsp_parser, G_TYPE_OBJECT)
 
 /* Types of responses */
 typedef enum {
diff --git a/src/flicksoup/fsp-parser.h b/src/flicksoup/fsp-parser.h
index d9f75f5..acf447d 100644
--- a/src/flicksoup/fsp-parser.h
+++ b/src/flicksoup/fsp-parser.h
@@ -28,31 +28,9 @@
 
 G_BEGIN_DECLS
 
-#define FSP_TYPE_PARSER                         \
-  (fsp_parser_get_type())
-#define FSP_PARSER(obj)                                                 \
-  (G_TYPE_CHECK_INSTANCE_CAST (obj, FSP_TYPE_PARSER, FspParser))
-#define FSP_PARSER_CLASS(klass)                                         \
-  (G_TYPE_CHECK_CLASS_CAST(klass, FSP_TYPE_PARSER, FspParserClass))
-#define FSP_IS_PARSER(obj)                              \
-  (G_TYPE_CHECK_INSTANCE_TYPE(obj, FSP_TYPE_PARSER))
-#define FSP_IS_PARSER_CLASS(klass)                      \
-  (G_TYPE_CHECK_CLASS_TYPE((klass), FSP_TYPE_PARSER))
-#define FSP_PARSER_GET_CLASS(obj)                                       \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), FSP_TYPE_PARSER, FspParserClass))
-
-typedef struct _FspParser FspParser;
-typedef struct _FspParserClass FspParserClass;
-
-struct _FspParser
-{
-  GObject parent_instance;
-};
-
-struct _FspParserClass
-{
-  GObjectClass parent_class;
-};
+#define FSP_TYPE_PARSER (fsp_parser_get_type())
+
+G_DECLARE_FINAL_TYPE (FspParser, fsp_parser, FSP, PARSER, GObject)
 
 /* All the parsers should be defined like this type */
 typedef
@@ -61,9 +39,6 @@ gpointer (* FspParserFunc)        (FspParser  *self,
                                    gulong            buf_size,
                                    GError          **error);
 
-GType
-fsp_parser_get_type              (void) G_GNUC_CONST;
-
 FspParser *
 fsp_parser_get_instance          (void);
 
diff --git a/src/flicksoup/fsp-session.c b/src/flicksoup/fsp-session.c
index 59804c6..fbe9b86 100644
--- a/src/flicksoup/fsp-session.c
+++ b/src/flicksoup/fsp-session.c
@@ -53,17 +53,10 @@ GCRY_THREAD_OPTION_PTHREAD_IMPL;
 #define DEBUG(...)
 #endif
 
-#define FSP_SESSION_GET_PRIVATE(object)                 \
-  (G_TYPE_INSTANCE_GET_PRIVATE ((object),               \
-                                FSP_TYPE_SESSION,       \
-                                FspSessionPrivate))
-
-G_DEFINE_TYPE (FspSession, fsp_session, G_TYPE_OBJECT)
-
-
-/* Private struct */
-struct _FspSessionPrivate
+struct _FspSession
 {
+  GObject parent;
+
   gchar *api_key;
   gchar *secret;
   gchar *token;
@@ -77,6 +70,8 @@ struct _FspSessionPrivate
   SoupSession *soup_session;
 };
 
+G_DEFINE_TYPE (FspSession, fsp_session, G_TYPE_OBJECT)
+
 /* Signals */
 enum {
   DATA_FRACTION_SENT,
@@ -359,17 +354,16 @@ fsp_session_set_property                (GObject      *object,
                                          GParamSpec   *pspec)
 {
   FspSession *self = FSP_SESSION (object);
-  FspSessionPrivate *priv = self->priv;
 
   switch (prop_id)
     {
     case PROP_API_KEY:
-      g_free (priv->api_key);
-      priv->api_key = g_value_dup_string (value);
+      g_free (self->api_key);
+      self->api_key = g_value_dup_string (value);
       break;
     case PROP_SECRET:
-      g_free (priv->secret);
-      priv->secret = g_value_dup_string (value);
+      g_free (self->secret);
+      self->secret = g_value_dup_string (value);
       break;
     case PROP_TOKEN:
       fsp_session_set_token (self, g_value_get_string (value));
@@ -394,16 +388,16 @@ fsp_session_get_property                (GObject    *object,
   switch (prop_id)
     {
     case PROP_API_KEY:
-      g_value_set_string (value, self->priv->api_key);
+      g_value_set_string (value, self->api_key);
       break;
     case PROP_SECRET:
-      g_value_set_string (value, self->priv->secret);
+      g_value_set_string (value, self->secret);
       break;
     case PROP_TOKEN:
-      g_value_set_string (value, self->priv->token);
+      g_value_set_string (value, self->token);
       break;
     case PROP_TOKEN_SECRET:
-      g_value_set_string (value, self->priv->token_secret);
+      g_value_set_string (value, self->token_secret);
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -417,16 +411,16 @@ fsp_session_dispose                     (GObject* object)
   FspSession *self = FSP_SESSION (object);
 
   /* Unref object */
-  if (self->priv->soup_session)
+  if (self->soup_session)
     {
-      g_object_unref (self->priv->soup_session);
-      self->priv->soup_session = NULL;
+      g_object_unref (self->soup_session);
+      self->soup_session = NULL;
     }
 
-  if (self->priv->proxy_uri)
+  if (self->proxy_uri)
     {
-      soup_uri_free (self->priv->proxy_uri);
-      self->priv->proxy_uri = NULL;
+      soup_uri_free (self->proxy_uri);
+      self->proxy_uri = NULL;
     }
 
   /* Call superclass */
@@ -439,12 +433,12 @@ fsp_session_finalize                    (GObject* object)
   FspSession *self = FSP_SESSION (object);
 
   /* Free memory */
-  g_free (self->priv->api_key);
-  g_free (self->priv->secret);
-  g_free (self->priv->token);
-  g_free (self->priv->token_secret);
-  g_free (self->priv->tmp_token);
-  g_free (self->priv->tmp_token_secret);
+  g_free (self->api_key);
+  g_free (self->secret);
+  g_free (self->token);
+  g_free (self->token_secret);
+  g_free (self->tmp_token);
+  g_free (self->tmp_token_secret);
 
   /* Call superclass */
   G_OBJECT_CLASS (fsp_session_parent_class)->finalize(object);
@@ -487,33 +481,28 @@ fsp_session_class_init                  (FspSessionClass *klass)
                   0, NULL, NULL,
                   g_cclosure_marshal_VOID__DOUBLE,
                   G_TYPE_NONE, 1, G_TYPE_DOUBLE);
-
-  /* Add private */
-  g_type_class_add_private (obj_class, sizeof (FspSessionPrivate));
 }
 
 static void
 fsp_session_init                        (FspSession *self)
 {
-  self->priv = FSP_SESSION_GET_PRIVATE (self);
-
-  self->priv->api_key = NULL;
-  self->priv->secret = NULL;
-  self->priv->token = NULL;
-  self->priv->token_secret = NULL;
-  self->priv->tmp_token = NULL;
-  self->priv->tmp_token_secret = NULL;
-  self->priv->using_default_proxy = TRUE;
-  self->priv->proxy_uri = NULL;
+  self->api_key = NULL;
+  self->secret = NULL;
+  self->token = NULL;
+  self->token_secret = NULL;
+  self->tmp_token = NULL;
+  self->tmp_token_secret = NULL;
+  self->using_default_proxy = TRUE;
+  self->proxy_uri = NULL;
 
   /* Early gcrypt initialization */
   _init_gcrypt ();
 
 #ifdef SOUP_VERSION_2_42
   /* soup_session_async_new() deprecated in lisoup 2.42 */
-  self->priv->soup_session = soup_session_new ();
+  self->soup_session = soup_session_new ();
 #else
-  self->priv->soup_session = soup_session_async_new ();
+  self->soup_session = soup_session_async_new ();
 #endif
 }
 
@@ -548,7 +537,7 @@ static SoupSession *
 _get_soup_session                       (FspSession *self)
 {
   g_return_val_if_fail (FSP_IS_SESSION (self), NULL);
-  return self->priv->soup_session;
+  return self->soup_session;
 }
 
 static void
@@ -1239,7 +1228,6 @@ _get_signed_url                       (FspSession          *self,
                                        const gchar         *first_param,
                                        ... )
 {
-  FspSessionPrivate *priv = NULL;
   va_list args;
   GHashTable *table = NULL;
   gchar *signing_key = NULL;
@@ -1253,18 +1241,17 @@ _get_signed_url                       (FspSession          *self,
   g_return_val_if_fail (url != NULL, NULL);
   g_return_val_if_fail (first_param != NULL, NULL);
 
-  priv = self->priv;
   va_start (args, first_param);
 
   if (token_type == TOKEN_TYPE_PERMANENT)
     {
-      token = priv->token;
-      token_secret = priv->token_secret;
+      token = self->token;
+      token_secret = self->token_secret;
     }
   else
     {
-      token = priv->tmp_token;
-      token_secret = priv->tmp_token_secret;
+      token = self->tmp_token;
+      token_secret = self->tmp_token_secret;
     }
 
   /* Get the hash table for the params */
@@ -1273,15 +1260,15 @@ _get_signed_url                       (FspSession          *self,
   /* Fill the table with mandatory parameters */
   if (auth_method == AUTHORIZATION_METHOD_OAUTH_1)
     {
-      _fill_hash_table_with_oauth_params (table, priv->api_key, token);
-      signing_key = g_strdup_printf ("%s&%s", priv->secret, token_secret ? token_secret : "");
+      _fill_hash_table_with_oauth_params (table, self->api_key, token);
+      signing_key = g_strdup_printf ("%s&%s", self->secret, token_secret ? token_secret : "");
     }
   else
     {
-      g_hash_table_insert (table, g_strdup ("api_key"), g_strdup (priv->api_key));
+      g_hash_table_insert (table, g_strdup ("api_key"), g_strdup (self->api_key));
       if (token)
         g_hash_table_insert (table, g_strdup ("auth_token"), g_strdup (token));
-      signing_key = g_strdup (priv->secret);
+      signing_key = g_strdup (self->secret);
     }
 
   api_sig = _get_api_signature_from_hash_table (url, table, signing_key, "GET", auth_method);
@@ -1305,21 +1292,18 @@ _get_signed_url                       (FspSession          *self,
 static void
 _clear_temporary_token                (FspSession *self)
 {
-  FspSessionPrivate *priv = NULL;
-
   g_return_if_fail (FSP_IS_SESSION (self));
 
-  priv = self->priv;
-  if (priv->tmp_token)
+  if (self->tmp_token)
     {
-      g_free (priv->tmp_token);
-      priv->tmp_token = NULL;
+      g_free (self->tmp_token);
+      self->tmp_token = NULL;
     }
 
-  if (priv->tmp_token_secret)
+  if (self->tmp_token_secret)
     {
-      g_free (priv->tmp_token_secret);
-      priv->tmp_token_secret = NULL;
+      g_free (self->tmp_token_secret);
+      self->tmp_token_secret = NULL;
     }
 }
 
@@ -1692,17 +1676,17 @@ fsp_session_set_default_proxy           (FspSession *self,
   g_return_if_fail (FSP_IS_SESSION (self));
 
   /* Ensure we clean the URI of a custom proxy, if present */
-  if (self->priv->proxy_uri)
-    soup_uri_free (self->priv->proxy_uri);
-  self->priv->proxy_uri = NULL;
+  if (self->proxy_uri)
+    soup_uri_free (self->proxy_uri);
+  self->proxy_uri = NULL;
 
   /* Explicitly enable or disable the feature in the session */
   if (enabled)
-    soup_session_add_feature_by_type (self->priv->soup_session, SOUP_TYPE_PROXY_RESOLVER_DEFAULT);
+    soup_session_add_feature_by_type (self->soup_session, SOUP_TYPE_PROXY_RESOLVER_DEFAULT);
   else
-    soup_session_remove_feature_by_type (self->priv->soup_session, SOUP_TYPE_PROXY_RESOLVER_DEFAULT);
+    soup_session_remove_feature_by_type (self->soup_session, SOUP_TYPE_PROXY_RESOLVER_DEFAULT);
 
-  self->priv->using_default_proxy = enabled;
+  self->using_default_proxy = enabled;
 }
 
 gboolean
@@ -1747,25 +1731,25 @@ fsp_session_set_custom_proxy            (FspSession *self,
     }
 
   /* Set the custom proxy (even if no valid data was provided) */
-  g_object_set (G_OBJECT (self->priv->soup_session),
+  g_object_set (G_OBJECT (self->soup_session),
                 SOUP_SESSION_PROXY_URI,
                 proxy_uri,
                 NULL);
 
-  was_using_default_proxy = self->priv->using_default_proxy;
-  self->priv->using_default_proxy = FALSE;
+  was_using_default_proxy = self->using_default_proxy;
+  self->using_default_proxy = FALSE;
 
   /* Update internal values if needed */
   if (was_using_default_proxy
-      || (!self->priv->proxy_uri && proxy_uri)
-      || (self->priv->proxy_uri && !proxy_uri)
-      || (self->priv->proxy_uri && proxy_uri && !soup_uri_equal (self->priv->proxy_uri, proxy_uri)))
+      || (!self->proxy_uri && proxy_uri)
+      || (self->proxy_uri && !proxy_uri)
+      || (self->proxy_uri && proxy_uri && !soup_uri_equal (self->proxy_uri, proxy_uri)))
     {
       /* Save internal reference to the proxy */
-      if (self->priv->proxy_uri)
-        soup_uri_free (self->priv->proxy_uri);
+      if (self->proxy_uri)
+        soup_uri_free (self->proxy_uri);
 
-      self->priv->proxy_uri = proxy_uri;
+      self->proxy_uri = proxy_uri;
 
       /* Proxy configuration actually changed */
       return TRUE;
@@ -1779,7 +1763,7 @@ fsp_session_get_api_key                 (FspSession *self)
 {
   g_return_val_if_fail (FSP_IS_SESSION (self), NULL);
 
-  return self->priv->api_key;
+  return self->api_key;
 }
 
 const gchar *
@@ -1787,7 +1771,7 @@ fsp_session_get_secret                  (FspSession *self)
 {
   g_return_val_if_fail (FSP_IS_SESSION (self), NULL);
 
-  return self->priv->secret;
+  return self->secret;
 }
 
 const gchar *
@@ -1795,7 +1779,7 @@ fsp_session_get_token                   (FspSession *self)
 {
   g_return_val_if_fail (FSP_IS_SESSION (self), NULL);
 
-  return self->priv->token;
+  return self->token;
 }
 
 void
@@ -1804,8 +1788,8 @@ fsp_session_set_token                   (FspSession  *self,
 {
   g_return_if_fail (FSP_IS_SESSION (self));
 
-  g_free (self->priv->token);
-  self->priv->token = g_strdup (token);
+  g_free (self->token);
+  self->token = g_strdup (token);
 }
 
 const gchar *
@@ -1813,7 +1797,7 @@ fsp_session_get_token_secret            (FspSession *self)
 {
   g_return_val_if_fail (FSP_IS_SESSION (self), NULL);
 
-  return self->priv->token_secret;
+  return self->token_secret;
 }
 
 void
@@ -1822,8 +1806,8 @@ fsp_session_set_token_secret            (FspSession  *self,
 {
   g_return_if_fail (FSP_IS_SESSION (self));
 
-  g_free (self->priv->token_secret);
-  self->priv->token_secret = g_strdup (token_secret);
+  g_free (self->token_secret);
+  self->token_secret = g_strdup (token_secret);
 }
 
 /* Get authorization URL */
@@ -1850,7 +1834,7 @@ fsp_session_get_auth_url                (FspSession          *self,
                          NULL);
 
   /* Perform the async request */
-  _perform_async_request (self->priv->soup_session, url,
+  _perform_async_request (self->soup_session, url,
                           _get_request_token_session_cb, G_OBJECT (self),
                           c, cb, fsp_session_get_auth_url, data);
 
@@ -1876,8 +1860,8 @@ fsp_session_get_auth_url_finish         (FspSession    *self,
   if (auth_token != NULL)
     {
       /* Save the temporaty data */
-      self->priv->tmp_token = g_strdup (auth_token->token);
-      self->priv->tmp_token_secret = g_strdup (auth_token->token_secret);
+      self->tmp_token = g_strdup (auth_token->token);
+      self->tmp_token_secret = g_strdup (auth_token->token_secret);
 
       /* Build the authorization url */
       auth_url = g_strdup_printf ("%s?oauth_token=%s",
@@ -1899,13 +1883,10 @@ fsp_session_complete_auth               (FspSession          *self,
                                          GAsyncReadyCallback  cb,
                                          gpointer             data)
 {
-  FspSessionPrivate *priv = NULL;
-
   g_return_if_fail (FSP_IS_SESSION (self));
   g_return_if_fail (cb != NULL);
 
-  priv = self->priv;
-  if (priv->tmp_token != NULL && priv->tmp_token_secret != NULL)
+  if (self->tmp_token != NULL && self->tmp_token_secret != NULL)
     {
       gchar *url = NULL;
 
@@ -1918,7 +1899,7 @@ fsp_session_complete_auth               (FspSession          *self,
                              NULL);
 
       /* Perform the async request */
-      _perform_async_request (priv->soup_session, url,
+      _perform_async_request (self->soup_session, url,
                               _get_access_token_soup_session_cb, G_OBJECT (self),
                               c, cb, fsp_session_complete_auth, data);
 
@@ -1968,13 +1949,10 @@ fsp_session_exchange_token              (FspSession          *self,
                                          GAsyncReadyCallback cb,
                                          gpointer             data)
 {
-  FspSessionPrivate *priv = NULL;
-
   g_return_if_fail (FSP_IS_SESSION (self));
   g_return_if_fail (cb != NULL);
 
-  priv = self->priv;
-  if (priv->token != NULL)
+  if (self->token != NULL)
     {
       gchar *url = NULL;
 
@@ -1987,7 +1965,7 @@ fsp_session_exchange_token              (FspSession          *self,
                              NULL);
 
       /* Perform the async request */
-      _perform_async_request (priv->soup_session, url,
+      _perform_async_request (self->soup_session, url,
                               _exchange_token_soup_session_cb, G_OBJECT (self),
                               c, cb, fsp_session_exchange_token, data);
 
@@ -2031,13 +2009,10 @@ fsp_session_check_auth_info             (FspSession          *self,
                                          GAsyncReadyCallback  cb,
                                          gpointer             data)
 {
-  FspSessionPrivate *priv = NULL;
-
   g_return_if_fail (FSP_IS_SESSION (self));
   g_return_if_fail (cb != NULL);
 
-  priv = self->priv;
-  if (priv->token != NULL)
+  if (self->token != NULL)
     {
       gchar *url = NULL;
 
@@ -2050,7 +2025,7 @@ fsp_session_check_auth_info             (FspSession          *self,
                              NULL);
 
       /* Perform the async request */
-      _perform_async_request (priv->soup_session, url,
+      _perform_async_request (self->soup_session, url,
                               _check_token_soup_session_cb, G_OBJECT (self),
                               c, cb, fsp_session_check_auth_info, data);
 
@@ -2089,13 +2064,10 @@ fsp_session_get_upload_status           (FspSession          *self,
                                          GAsyncReadyCallback cb,
                                          gpointer             data)
 {
-  FspSessionPrivate *priv = NULL;
-
   g_return_if_fail (FSP_IS_SESSION (self));
   g_return_if_fail (cb != NULL);
 
-  priv = self->priv;
-  if (priv->token != NULL)
+  if (self->token != NULL)
     {
       gchar *url = NULL;
 
@@ -2108,7 +2080,7 @@ fsp_session_get_upload_status           (FspSession          *self,
                              NULL);
 
       /* Perform the async request */
-      _perform_async_request (priv->soup_session, url,
+      _perform_async_request (self->soup_session, url,
                               _get_upload_status_soup_session_cb, G_OBJECT (self),
                               c, cb, fsp_session_get_upload_status, data);
 
@@ -2157,7 +2129,6 @@ fsp_session_upload                      (FspSession          *self,
                                          GAsyncReadyCallback  callback,
                                          gpointer             data)
 {
-  FspSessionPrivate *priv = NULL;
   SoupSession *soup_session = NULL;
   GHashTable *extra_params = NULL;
   AsyncRequestData *ard_clos = NULL;
@@ -2170,7 +2141,6 @@ fsp_session_upload                      (FspSession          *self,
   g_return_if_fail (fileuri != NULL);
 
   /* Get flickr proxy */
-  priv = self->priv;
   soup_session = _get_soup_session (self);
 
   /* Get extra params (those actually used for the picture) */
@@ -2179,7 +2149,7 @@ fsp_session_upload                      (FspSession          *self,
                                            safety_level, content_type, hidden);
 
   /* Add mandatory parameters according to OAuth specification */
-  _fill_hash_table_with_oauth_params (extra_params, priv->api_key, priv->token);
+  _fill_hash_table_with_oauth_params (extra_params, self->api_key, self->token);
 
   /* OAuth requires to encode some fields just to calculate the
      signature, so do some extra encoding now and undo it later */
@@ -2188,7 +2158,7 @@ fsp_session_upload                      (FspSession          *self,
   _encode_param_from_table_for_signature (extra_params, "tags");
 
   /* Build the api signature and add it to the hash table */
-  signing_key = g_strdup_printf ("%s&%s", priv->secret, priv->token_secret);
+  signing_key = g_strdup_printf ("%s&%s", self->secret, self->token_secret);
   api_sig = _get_api_signature_from_hash_table (FLICKR_API_UPLOAD_URL, extra_params, signing_key,
                                                 "POST", AUTHORIZATION_METHOD_OAUTH_1);
 
diff --git a/src/flicksoup/fsp-session.h b/src/flicksoup/fsp-session.h
index 4679b3e..9e44465 100644
--- a/src/flicksoup/fsp-session.h
+++ b/src/flicksoup/fsp-session.h
@@ -29,37 +29,9 @@
 
 G_BEGIN_DECLS
 
-#define FSP_TYPE_SESSION                  \
-  (fsp_session_get_type())
-#define FSP_SESSION(obj)                  \
-  (G_TYPE_CHECK_INSTANCE_CAST (obj, FSP_TYPE_SESSION, FspSession))
-#define FSP_SESSION_CLASS(klass)          \
-  (G_TYPE_CHECK_CLASS_CAST(klass, FSP_TYPE_SESSION, FspSessionClass))
-#define FSP_IS_SESSION(obj)               \
-  (G_TYPE_CHECK_INSTANCE_TYPE(obj, FSP_TYPE_SESSION))
-#define FSP_IS_SESSION_CLASS(klass)       \
-  (G_TYPE_CHECK_CLASS_TYPE((klass), FSP_TYPE_SESSION))
-#define FSP_SESSION_GET_CLASS(obj)        \
-  (G_TYPE_INSTANCE_GET_CLASS ((obj), FSP_TYPE_SESSION, FspSessionClass))
-
-typedef struct _FspSession FspSession;
-typedef struct _FspSessionClass FspSessionClass;
-typedef struct _FspSessionPrivate FspSessionPrivate;
-
-struct _FspSession
-{
-  GObject parent_instance;
-  FspSessionPrivate *priv;
-};
-
-struct _FspSessionClass
-{
-  GObjectClass parent_class;
-};
-
-
-GType
-fsp_session_get_type                    (void) G_GNUC_CONST;
+#define FSP_TYPE_SESSION (fsp_session_get_type())
+
+G_DECLARE_FINAL_TYPE (FspSession, fsp_session, FSP, SESSION, GObject)
 
 FspSession *
 fsp_session_new                         (const gchar *api_key,
diff --git a/src/frogr-account.c b/src/frogr-account.c
index b47667f..db4c327 100644
--- a/src/frogr-account.c
+++ b/src/frogr-account.c
@@ -22,18 +22,11 @@
 
 #include "frogr-account.h"
 
-#define FROGR_ACCOUNT_GET_PRIVATE(object)               \
-  (G_TYPE_INSTANCE_GET_PRIVATE ((object),               \
-                                FROGR_TYPE_ACCOUNT,     \
-                                FrogrAccountPrivate))
 
-G_DEFINE_TYPE (FrogrAccount, frogr_account, G_TYPE_OBJECT)
-
-
-/* Private structure */
-typedef struct _FrogrAccountPrivate FrogrAccountPrivate;
-struct _FrogrAccountPrivate
+struct _FrogrAccount
 {
+  GObject parent;
+
   gchar *token;
   gchar *token_secret;
   gchar *permissions;
@@ -54,6 +47,8 @@ struct _FrogrAccountPrivate
   gboolean is_pro;
 };
 
+G_DEFINE_TYPE (FrogrAccount, frogr_account, G_TYPE_OBJECT)
+
 
 /* Properties */
 enum {
@@ -164,72 +159,72 @@ _frogr_account_get_property (GObject    *object,
                              GValue     *value,
                              GParamSpec *pspec)
 {
-  FrogrAccountPrivate *priv = FROGR_ACCOUNT_GET_PRIVATE (object);
+  FrogrAccount *account = FROGR_ACCOUNT (object);
 
   switch (property_id)
     {
     case PROP_TOKEN:
-      g_value_set_string (value, priv->token);
+      g_value_set_string (value, account->token);
       break;
 
     case PROP_TOKEN_SECRET:
-      g_value_set_string (value, priv->token_secret);
+      g_value_set_string (value, account->token_secret);
       break;
 
     case PROP_PERMISSIONS:
-      g_value_set_string (value, priv->permissions);
+      g_value_set_string (value, account->permissions);
       break;
 
     case PROP_ID:
-      g_value_set_string (value, priv->id);
+      g_value_set_string (value, account->id);
       break;
 
     case PROP_USERNAME:
-      g_value_set_string (value, priv->username);
+      g_value_set_string (value, account->username);
       break;
 
     case PROP_FULLNAME:
-      g_value_set_string (value, priv->fullname);
+      g_value_set_string (value, account->fullname);
       break;
 
     case PROP_VERSION:
-      g_value_set_string (value, priv->version);
+      g_value_set_string (value, account->version);
       break;
 
     case PROP_IS_ACTIVE:
-      g_value_set_boolean (value, priv->is_active);
+      g_value_set_boolean (value, account->is_active);
       break;
 
     case PROP_HAS_EXTRA_INFO:
-      g_value_set_boolean (value, priv->has_extra_info);
+      g_value_set_boolean (value, account->has_extra_info);
       break;
 
     case PROP_REMAINING_BANDWIDTH:
-      g_value_set_ulong (value, priv->remaining_bandwidth);
+      g_value_set_ulong (value, account->remaining_bandwidth);
       break;
 
     case PROP_MAX_BANDWIDTH:
-      g_value_set_ulong (value, priv->max_bandwidth);
+      g_value_set_ulong (value, account->max_bandwidth);
       break;
 
     case PROP_MAX_PICTURE_FILESIZE:
-      g_value_set_ulong (value, priv->max_picture_filesize);
+      g_value_set_ulong (value, account->max_picture_filesize);
       break;
 
     case PROP_MAX_VIDEO_FILESIZE:
-      g_value_set_ulong (value, priv->max_video_filesize);
+      g_value_set_ulong (value, account->max_video_filesize);
       break;
 
     case PROP_REMAINING_VIDEOS:
-      g_value_set_uint (value, priv->remaining_videos);
+      g_value_set_uint (value, account->remaining_videos);
       break;
 
     case PROP_CURRENT_VIDEOS:
-      g_value_set_uint (value, priv->current_videos);
+      g_value_set_uint (value, account->current_videos);
       break;
 
     case PROP_IS_PRO:
-      g_value_set_boolean (value, priv->is_pro);
+      g_value_set_boolean (value, account->is_pro);
       break;
 
     default:
@@ -240,15 +235,15 @@ _frogr_account_get_property (GObject    *object,
 static void
 _frogr_account_finalize (GObject *object)
 {
-  FrogrAccountPrivate *priv = FROGR_ACCOUNT_GET_PRIVATE (object);
+  FrogrAccount *account = FROGR_ACCOUNT (object);
 
-  g_free (priv->token);
-  g_free (priv->token_secret);
-  g_free (priv->permissions);
-  g_free (priv->id);
-  g_free (priv->username);
-  g_free (priv->fullname);
-  g_free (priv->version);
+  g_free (account->token);
+  g_free (account->token_secret);
+  g_free (account->permissions);
+  g_free (account->id);
+  g_free (account->username);
+  g_free (account->fullname);
+  g_free (account->version);
 
   /* Call superclass */
   G_OBJECT_CLASS (frogr_account_parent_class)->finalize (object);
@@ -377,30 +372,27 @@ frogr_account_class_init (FrogrAccountClass *klass)
                                 FALSE,
                                 G_PARAM_READWRITE);
   g_object_class_install_property (obj_class, PROP_IS_PRO, pspec);
-
-  g_type_class_add_private (klass, sizeof (FrogrAccountPrivate));
 }
 
 static void
 frogr_account_init (FrogrAccount *self)
 {
-  FrogrAccountPrivate *priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  priv->token = NULL;
-  priv->token_secret = NULL;
-  priv->permissions = NULL;
-  priv->id = NULL;
-  priv->username = NULL;
-  priv->fullname = NULL;
-  priv->version = NULL;
-  priv->is_active = FALSE;
-  priv->has_extra_info = FALSE;
-  priv->remaining_bandwidth = G_MAXULONG;
-  priv->max_bandwidth = G_MAXULONG;
-  priv->max_picture_filesize = G_MAXULONG;
-  priv->max_video_filesize = G_MAXULONG;
-  priv->remaining_videos = G_MAXUINT;
-  priv->current_videos = G_MAXUINT;
-  priv->is_pro = FALSE;
+  self->token = NULL;
+  self->token_secret = NULL;
+  self->permissions = NULL;
+  self->id = NULL;
+  self->username = NULL;
+  self->fullname = NULL;
+  self->version = NULL;
+  self->is_active = FALSE;
+  self->has_extra_info = FALSE;
+  self->remaining_bandwidth = G_MAXULONG;
+  self->max_bandwidth = G_MAXULONG;
+  self->max_picture_filesize = G_MAXULONG;
+  self->max_video_filesize = G_MAXULONG;
+  self->remaining_videos = G_MAXUINT;
+  self->current_videos = G_MAXUINT;
+  self->is_pro = FALSE;
 }
 
 FrogrAccount *
@@ -429,360 +421,236 @@ frogr_account_new_full (const gchar *token, const gchar *token_secret)
 const gchar *
 frogr_account_get_token (FrogrAccount *self)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_ACCOUNT (self), NULL);
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  return priv->token;
+  return self->token;
 }
 
 void
 frogr_account_set_token (FrogrAccount *self,
                          const gchar *token)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_if_fail (FROGR_IS_ACCOUNT (self));
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  g_free (priv->token);
-  priv->token = g_strdup (token);
+  g_free (self->token);
+  self->token = g_strdup (token);
 }
 
 const gchar*
 frogr_account_get_token_secret (FrogrAccount *self)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_ACCOUNT (self), NULL);
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  return priv->token_secret;
+  return self->token_secret;
 }
 
 void
 frogr_account_set_token_secret (FrogrAccount *self,
                                 const gchar *token_secret)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_if_fail (FROGR_IS_ACCOUNT (self));
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  g_free (priv->token_secret);
-  priv->token_secret = g_strdup (token_secret);
+  g_free (self->token_secret);
+  self->token_secret = g_strdup (token_secret);
 }
 
 const gchar*
 frogr_account_get_permissions (FrogrAccount *self)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_ACCOUNT (self), NULL);
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  return priv->permissions;
+  return self->permissions;
 }
 
 void
 frogr_account_set_permissions (FrogrAccount *self, const gchar *permissions)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_if_fail (FROGR_IS_ACCOUNT (self));
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  g_free (priv->permissions);
-  priv->permissions = g_strdup (permissions);
+  g_free (self->permissions);
+  self->permissions = g_strdup (permissions);
 }
 
 const gchar*
 frogr_account_get_id (FrogrAccount *self)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_ACCOUNT (self), NULL);
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  return priv->id;
+  return self->id;
 }
 
 void
 frogr_account_set_id (FrogrAccount *self, const gchar *id)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_if_fail (FROGR_IS_ACCOUNT (self));
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  g_free (priv->id);
-  priv->id = g_strdup (id);
+  g_free (self->id);
+  self->id = g_strdup (id);
 }
 
 const gchar*
 frogr_account_get_username (FrogrAccount *self)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_ACCOUNT (self), NULL);
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  return priv->username;
+  return self->username;
 }
 
 void
 frogr_account_set_username (FrogrAccount *self, const gchar *username)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_if_fail (FROGR_IS_ACCOUNT (self));
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  g_free (priv->username);
-  priv->username = g_strdup (username);
+  g_free (self->username);
+  self->username = g_strdup (username);
 }
 
 const gchar*
 frogr_account_get_fullname (FrogrAccount *self)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_ACCOUNT (self), NULL);
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  return priv->fullname;
+  return self->fullname;
 }
 
 void
 frogr_account_set_fullname (FrogrAccount *self, const gchar *fullname)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_if_fail (FROGR_IS_ACCOUNT (self));
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  g_free (priv->fullname);
-  priv->fullname = g_strdup (fullname);
+  g_free (self->fullname);
+  self->fullname = g_strdup (fullname);
 }
 
 gboolean
 frogr_account_is_active (FrogrAccount *self)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_ACCOUNT (self), FALSE);
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  return priv->is_active;
+  return self->is_active;
 }
 
 void
 frogr_account_set_is_active (FrogrAccount *self, gboolean is_active)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_if_fail (FROGR_IS_ACCOUNT (self));
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  priv->is_active = is_active;
+  self->is_active = is_active;
 }
 
 gboolean
 frogr_account_has_extra_info (FrogrAccount *self)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_ACCOUNT (self), FALSE);
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  return priv->has_extra_info;
+  return self->has_extra_info;
 }
 
 void
 frogr_account_set_has_extra_info (FrogrAccount *self, gboolean has_extra_info)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_if_fail (FROGR_IS_ACCOUNT (self));
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  priv->has_extra_info = has_extra_info;
+  self->has_extra_info = has_extra_info;
 }
 
 gulong
 frogr_account_get_remaining_bandwidth (FrogrAccount *self)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_ACCOUNT (self), G_MAXULONG);
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  return priv->remaining_bandwidth;
+  return self->remaining_bandwidth;
 }
 
 void
 frogr_account_set_remaining_bandwidth (FrogrAccount *self, gulong remaining_bandwidth)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_if_fail (FROGR_IS_ACCOUNT (self));
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  priv->remaining_bandwidth = remaining_bandwidth;
+  self->remaining_bandwidth = remaining_bandwidth;
 }
 
 gulong
 frogr_account_get_max_bandwidth (FrogrAccount *self)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_ACCOUNT (self), G_MAXULONG);
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  return priv->max_bandwidth;
+  return self->max_bandwidth;
 }
 
 void
 frogr_account_set_max_bandwidth (FrogrAccount *self, gulong max_bandwidth)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_if_fail (FROGR_IS_ACCOUNT (self));
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  priv->max_bandwidth = max_bandwidth;
+  self->max_bandwidth = max_bandwidth;
 }
 
 gulong frogr_account_get_max_picture_filesize (FrogrAccount *self)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_ACCOUNT (self), G_MAXULONG);
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  return priv->max_picture_filesize;
+  return self->max_picture_filesize;
 }
 
 void frogr_account_set_max_picture_filesize (FrogrAccount *self,
                                            gulong max_filesize)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_if_fail (FROGR_IS_ACCOUNT (self));
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  priv->max_picture_filesize = max_filesize;
+  self->max_picture_filesize = max_filesize;
 }
 
 gulong
 frogr_account_get_max_video_filesize (FrogrAccount *self)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_ACCOUNT (self), G_MAXULONG);
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  return priv->max_video_filesize;
+  return self->max_video_filesize;
 
 }
 
 void
 frogr_account_set_max_video_filesize (FrogrAccount *self, gulong max_filesize)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_if_fail (FROGR_IS_ACCOUNT (self));
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  priv->max_video_filesize = max_filesize;
+  self->max_video_filesize = max_filesize;
 }
 
 gulong
 frogr_account_get_remaining_videos (FrogrAccount *self)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_ACCOUNT (self), G_MAXUINT);
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  return priv->remaining_videos;
+  return self->remaining_videos;
 }
 
 void
 frogr_account_set_remaining_videos (FrogrAccount *self, guint remaining_videos)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_if_fail (FROGR_IS_ACCOUNT (self));
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  priv->remaining_videos = remaining_videos;
+  self->remaining_videos = remaining_videos;
 }
 
 guint
 frogr_account_get_current_videos (FrogrAccount *self)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_ACCOUNT (self), G_MAXUINT);
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  return priv->current_videos;
+  return self->current_videos;
 }
 
 void
 frogr_account_set_current_videos (FrogrAccount *self, guint current_videos)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_if_fail (FROGR_IS_ACCOUNT (self));
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  priv->current_videos = current_videos;
+  self->current_videos = current_videos;
 }
 
 gboolean
 frogr_account_is_pro (FrogrAccount *self)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_ACCOUNT (self), FALSE);
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  return priv->is_pro;
+  return self->is_pro;
 }
 
 void
 frogr_account_set_is_pro (FrogrAccount *self, gboolean is_pro)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_if_fail (FROGR_IS_ACCOUNT (self));
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  priv->is_pro = is_pro;
+  self->is_pro = is_pro;
 }
 
 gboolean
 frogr_account_is_valid (FrogrAccount *self)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_ACCOUNT (self), FALSE);
 
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-
-  if (priv->token == NULL || priv->token[0] == '\0')
+  if (self->token == NULL || self->token[0] == '\0')
     return FALSE;
 
-  if (priv->permissions == NULL || priv->permissions[0] == '\0')
+  if (self->permissions == NULL || self->permissions[0] == '\0')
     return FALSE;
 
-  if (priv->id == NULL || priv->id[0] == '\0')
+  if (self->id == NULL || self->id[0] == '\0')
     return FALSE;
 
-  if (priv->username == NULL || priv->username[0] == '\0')
+  if (self->username == NULL || self->username[0] == '\0')
     return FALSE;
 
   return TRUE;
@@ -791,32 +659,21 @@ frogr_account_is_valid (FrogrAccount *self)
 const gchar*
 frogr_account_get_version (FrogrAccount *self)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_ACCOUNT (self), FALSE);
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  return priv->version;
+  return self->version;
 }
 
 void
 frogr_account_set_version (FrogrAccount *self, const gchar *version)
 {
-  FrogrAccountPrivate *priv = NULL;
-
   g_return_if_fail (FROGR_IS_ACCOUNT (self));
-
-  priv = FROGR_ACCOUNT_GET_PRIVATE (self);
-  g_free (priv->version);
-  priv->version = g_strdup (version);
+  g_free (self->version);
+  self->version = g_strdup (version);
 }
 
 gboolean
 frogr_account_equal (FrogrAccount *self, FrogrAccount *other)
 {
-  FrogrAccountPrivate *priv_a = NULL;
-  FrogrAccountPrivate *priv_b = NULL;
-
   /* This function should gracefully handle NULL values */
   if (self == other)
     return TRUE;
@@ -827,37 +684,34 @@ frogr_account_equal (FrogrAccount *self, FrogrAccount *other)
   g_return_val_if_fail (FROGR_IS_ACCOUNT (self), FALSE);
   g_return_val_if_fail (FROGR_IS_ACCOUNT (other), FALSE);
 
-  priv_a = FROGR_ACCOUNT_GET_PRIVATE (self);
-  priv_b = FROGR_ACCOUNT_GET_PRIVATE (other);
-
-  if (g_strcmp0 (priv_a->token, priv_b->token))
+  if (g_strcmp0 (self->token, other->token))
     return FALSE;
 
-  if (g_strcmp0 (priv_a->token_secret, priv_b->token_secret))
+  if (g_strcmp0 (self->token_secret, other->token_secret))
     return FALSE;
 
-  if (g_strcmp0 (priv_a->permissions, priv_b->permissions))
+  if (g_strcmp0 (self->permissions, other->permissions))
     return FALSE;
 
-  if (g_strcmp0 (priv_a->id, priv_b->id))
+  if (g_strcmp0 (self->id, other->id))
     return FALSE;
 
-  if (g_strcmp0 (priv_a->username, priv_b->username))
+  if (g_strcmp0 (self->username, other->username))
     return FALSE;
 
-  if (g_strcmp0 (priv_a->fullname, priv_b->fullname))
+  if (g_strcmp0 (self->fullname, other->fullname))
     return FALSE;
 
-  if (g_strcmp0 (priv_a->version, priv_b->version))
+  if (g_strcmp0 (self->version, other->version))
     return FALSE;
 
-  if (priv_a->remaining_bandwidth != priv_b->remaining_bandwidth)
+  if (self->remaining_bandwidth != other->remaining_bandwidth)
     return FALSE;
 
-  if (priv_a->max_bandwidth != priv_b->max_bandwidth)
+  if (self->max_bandwidth != other->max_bandwidth)
     return FALSE;
 
-  if (priv_a->is_pro != priv_b->is_pro)
+  if (self->is_pro != other->is_pro)
     return FALSE;
 
   return TRUE;
diff --git a/src/frogr-account.h b/src/frogr-account.h
index 011eecd..162e788 100644
--- a/src/frogr-account.h
+++ b/src/frogr-account.h
@@ -28,34 +28,13 @@
 
 G_BEGIN_DECLS
 
-#define FROGR_TYPE_ACCOUNT            (frogr_account_get_type())
-#define FROGR_IS_ACCOUNT(obj)         (G_TYPE_CHECK_INSTANCE_TYPE(obj, FROGR_TYPE_ACCOUNT))
-#define FROGR_IS_ACCOUNT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE(klass,  FROGR_TYPE_ACCOUNT))
-#define FROGR_ACCOUNT(obj)            (G_TYPE_CHECK_INSTANCE_CAST(obj, FROGR_TYPE_ACCOUNT, FrogrAccount))
-#define FROGR_ACCOUNT_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST(klass,  FROGR_TYPE_ACCOUNT, 
FrogrAccountClass))
-#define FROGR_ACCOUNT_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS(obj,  FROGR_TYPE_ACCOUNT, 
FrogrAccountClass))
+#define FROGR_TYPE_ACCOUNT (frogr_account_get_type())
+
+G_DECLARE_FINAL_TYPE (FrogrAccount, frogr_account, FROGR, ACCOUNT, GObject)
 
 /* Increase this when changing the xml schema for storing accounts */
 #define ACCOUNTS_CURRENT_VERSION "2"
 
-typedef struct _FrogrAccount      FrogrAccount;
-typedef struct _FrogrAccountClass FrogrAccountClass;
-
-
-struct _FrogrAccount
-{
-  GObject parent_instance;
-};
-
-
-struct _FrogrAccountClass
-{
-  GObjectClass parent_class;
-};
-
-
-GType frogr_account_get_type(void) G_GNUC_CONST;
-
 FrogrAccount* frogr_account_new (void);
 
 FrogrAccount* frogr_account_new_with_token (const gchar *token);
diff --git a/src/frogr-add-tags-dialog.c b/src/frogr-add-tags-dialog.c
index f4c2689..c2dd42e 100644
--- a/src/frogr-add-tags-dialog.c
+++ b/src/frogr-add-tags-dialog.c
@@ -31,17 +31,16 @@
 #include <config.h>
 #include <glib/gi18n.h>
 
-#define FROGR_ADD_TAGS_DIALOG_GET_PRIVATE(object)               \
-  (G_TYPE_INSTANCE_GET_PRIVATE ((object),                       \
-                                FROGR_TYPE_ADD_TAGS_DIALOG,     \
-                                FrogrAddTagsDialogPrivate))
 
-G_DEFINE_TYPE (FrogrAddTagsDialog, frogr_add_tags_dialog, GTK_TYPE_DIALOG)
+struct _FrogrAddTagsDialog {
+  GtkDialog parent;
 
-typedef struct _FrogrAddTagsDialogPrivate {
   GtkWidget *entry;
   GSList *pictures;
-} FrogrAddTagsDialogPrivate;
+};
+
+G_DEFINE_TYPE (FrogrAddTagsDialog, frogr_add_tags_dialog, GTK_TYPE_DIALOG)
+
 
 /* Properties */
 enum  {
@@ -61,9 +60,8 @@ static void _dialog_response_cb (GtkDialog *dialog, gint response, gpointer data
 static void
 _set_pictures (FrogrAddTagsDialog *self, const GSList *pictures)
 {
-  FrogrAddTagsDialogPrivate *priv = FROGR_ADD_TAGS_DIALOG_GET_PRIVATE (self);
-  priv->pictures = g_slist_copy ((GSList*) pictures);
-  g_slist_foreach (priv->pictures, (GFunc)g_object_ref, NULL);
+  self->pictures = g_slist_copy ((GSList*) pictures);
+  g_slist_foreach (self->pictures, (GFunc)g_object_ref, NULL);
 }
 
 static void
@@ -72,14 +70,12 @@ _dialog_response_cb (GtkDialog *dialog, gint response, gpointer data)
   if (response == GTK_RESPONSE_ACCEPT)
     {
       FrogrAddTagsDialog *self = NULL;
-      FrogrAddTagsDialogPrivate *priv = NULL;
       gchar *tags = NULL;
 
       self = FROGR_ADD_TAGS_DIALOG (dialog);
-      priv = FROGR_ADD_TAGS_DIALOG_GET_PRIVATE (self);
 
       /* Update pictures data */
-      tags = g_strdup (gtk_entry_get_text (GTK_ENTRY (priv->entry)));
+      tags = g_strdup (gtk_entry_get_text (GTK_ENTRY (self->entry)));
       tags = g_strstrip (tags);
 
       /* Check if there's something to add */
@@ -92,7 +88,7 @@ _dialog_response_cb (GtkDialog *dialog, gint response, gpointer data)
           DEBUG ("Adding tags to picture(s): %s", tags);
 
           /* Iterate over the rest of elements */
-          for (item = priv->pictures; item; item = g_slist_next (item))
+          for (item = self->pictures; item; item = g_slist_next (item))
             {
               picture = FROGR_PICTURE (item->data);
               frogr_picture_add_tags (picture, tags);
@@ -134,12 +130,12 @@ _frogr_add_tags_dialog_get_property (GObject *object,
                                      GValue *value,
                                      GParamSpec *pspec)
 {
-  FrogrAddTagsDialogPrivate *priv = FROGR_ADD_TAGS_DIALOG_GET_PRIVATE (object);
+  FrogrAddTagsDialog *dialog = FROGR_ADD_TAGS_DIALOG (object);
 
   switch (prop_id)
     {
     case PROP_PICTURES:
-      g_value_set_pointer (value, priv->pictures);
+      g_value_set_pointer (value, dialog->pictures);
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -150,13 +146,13 @@ _frogr_add_tags_dialog_get_property (GObject *object,
 static void
 _frogr_add_tags_dialog_dispose (GObject *object)
 {
-  FrogrAddTagsDialogPrivate *priv = FROGR_ADD_TAGS_DIALOG_GET_PRIVATE (object);
+  FrogrAddTagsDialog *dialog = FROGR_ADD_TAGS_DIALOG (object);
 
-  if (priv->pictures)
+  if (dialog->pictures)
     {
-      g_slist_foreach (priv->pictures, (GFunc)g_object_unref, NULL);
-      g_slist_free (priv->pictures);
-      priv->pictures = NULL;
+      g_slist_foreach (dialog->pictures, (GFunc)g_object_unref, NULL);
+      g_slist_free (dialog->pictures);
+      dialog->pictures = NULL;
     }
 
   G_OBJECT_CLASS(frogr_add_tags_dialog_parent_class)->dispose (object);
@@ -181,14 +177,11 @@ frogr_add_tags_dialog_class_init (FrogrAddTagsDialogClass *klass)
                                 G_PARAM_READWRITE
                                 | G_PARAM_CONSTRUCT_ONLY);
   g_object_class_install_property (obj_class, PROP_PICTURES, pspec);
-
-  g_type_class_add_private (obj_class, sizeof (FrogrAddTagsDialogPrivate));
 }
 
 static void
 frogr_add_tags_dialog_init (FrogrAddTagsDialog *self)
 {
-  FrogrAddTagsDialogPrivate *priv = FROGR_ADD_TAGS_DIALOG_GET_PRIVATE (self);
   GtkWidget *content_area = NULL;
   GtkWidget *vbox = NULL;
   GtkWidget *label = NULL;
@@ -210,8 +203,8 @@ frogr_add_tags_dialog_init (FrogrAddTagsDialog *self)
   gtk_widget_set_halign (label, GTK_ALIGN_START);
   gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
 
-  priv->entry = frogr_live_entry_new ();
-  gtk_box_pack_start (GTK_BOX (vbox), priv->entry, FALSE, FALSE, 0);
+  self->entry = frogr_live_entry_new ();
+  gtk_box_pack_start (GTK_BOX (vbox), self->entry, FALSE, FALSE, 0);
 
   gtk_widget_set_size_request (GTK_WIDGET (self), 300, -1);
 
@@ -246,9 +239,8 @@ frogr_add_tags_dialog_show (GtkWindow *parent, const GSList *pictures, const GSL
   config = frogr_config_get_instance ();
   if (config && frogr_config_get_tags_autocompletion (config))
     {
-      FrogrAddTagsDialogPrivate *priv = NULL;
-      priv = FROGR_ADD_TAGS_DIALOG_GET_PRIVATE (new);
-      frogr_live_entry_set_auto_completion (FROGR_LIVE_ENTRY (priv->entry), tags);
+      FrogrAddTagsDialog *dialog = FROGR_ADD_TAGS_DIALOG (new);
+      frogr_live_entry_set_auto_completion (FROGR_LIVE_ENTRY (dialog->entry), tags);
     }
 
   gtk_widget_show_all (GTK_WIDGET (new));
diff --git a/src/frogr-add-tags-dialog.h b/src/frogr-add-tags-dialog.h
index 934e00a..9d0283d 100644
--- a/src/frogr-add-tags-dialog.h
+++ b/src/frogr-add-tags-dialog.h
@@ -25,27 +25,9 @@
 
 G_BEGIN_DECLS
 
-#define FROGR_TYPE_ADD_TAGS_DIALOG           (frogr_add_tags_dialog_get_type())
-#define FROGR_ADD_TAGS_DIALOG(obj)           (G_TYPE_CHECK_INSTANCE_CAST(obj, FROGR_TYPE_ADD_TAGS_DIALOG, 
FrogrAddTagsDialog))
-#define FROGR_ADD_TAGS_DIALOG_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST(klass, FROGR_TYPE_ADD_TAGS_DIALOG, 
FrogrAddTagsDialogClass))
-#define FROGR_IS_ADD_TAGS_DIALOG(obj)           (G_TYPE_CHECK_INSTANCE_TYPE(obj, FROGR_TYPE_ADD_TAGS_DIALOG))
-#define FROGR_IS_ADD_TAGS_DIALOG_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE((klass), 
FROGR_TYPE_ADD_TAGS_DIALOG))
-#define FROGR_ADD_TAGS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FROGR_TYPE_ADD_TAGS_DIALOG, 
FrogrAddTagsDialogClass))
-
-typedef struct _FrogrAddTagsDialog        FrogrAddTagsDialog;
-typedef struct _FrogrAddTagsDialogClass   FrogrAddTagsDialogClass;
-
-struct _FrogrAddTagsDialogClass
-{
-  GtkDialogClass parent_class;
-};
-
-struct _FrogrAddTagsDialog
-{
-  GtkDialog parent;
-};
-
-GType frogr_add_tags_dialog_get_type (void) G_GNUC_CONST;
+#define FROGR_TYPE_ADD_TAGS_DIALOG (frogr_add_tags_dialog_get_type())
+
+G_DECLARE_FINAL_TYPE (FrogrAddTagsDialog, frogr_add_tags_dialog, FROGR, ADD_TAGS_DIALOG, GtkDialog)
 
 void frogr_add_tags_dialog_show (GtkWindow *parent, const GSList *pictures, const GSList *tags);
 
diff --git a/src/frogr-add-to-group-dialog.c b/src/frogr-add-to-group-dialog.c
index ab1e3b4..5258f4c 100644
--- a/src/frogr-add-to-group-dialog.c
+++ b/src/frogr-add-to-group-dialog.c
@@ -31,14 +31,10 @@
 #define MINIMUM_WINDOW_WIDTH 400
 #define MINIMUM_WINDOW_HEIGHT 400
 
-#define FROGR_ADD_TO_GROUP_DIALOG_GET_PRIVATE(object)           \
-  (G_TYPE_INSTANCE_GET_PRIVATE ((object),                       \
-                                FROGR_TYPE_ADD_TO_GROUP_DIALOG, \
-                                FrogrAddToGroupDialogPrivate))
 
-G_DEFINE_TYPE (FrogrAddToGroupDialog, frogr_add_to_group_dialog, GTK_TYPE_DIALOG)
+struct _FrogrAddToGroupDialog {
+  GtkDialog parent;
 
-typedef struct _FrogrAddToGroupDialogPrivate {
   GtkWidget *treeview;
   GtkTreeModel *treemodel;
 
@@ -48,7 +44,10 @@ typedef struct _FrogrAddToGroupDialogPrivate {
 
   GSList *pictures;
   GSList *groups;
-} FrogrAddToGroupDialogPrivate;
+};
+
+G_DEFINE_TYPE (FrogrAddToGroupDialog, frogr_add_to_group_dialog, GTK_TYPE_DIALOG)
+
 
 /* Properties */
 enum  {
@@ -106,29 +105,23 @@ static void _dialog_response_cb (GtkDialog *dialog, gint response, gpointer data
 static void
 _set_pictures (FrogrAddToGroupDialog *self, const GSList *pictures)
 {
-  FrogrAddToGroupDialogPrivate *priv = FROGR_ADD_TO_GROUP_DIALOG_GET_PRIVATE (self);
-  priv->pictures = g_slist_copy ((GSList*) pictures);
-  g_slist_foreach (priv->pictures, (GFunc)g_object_ref, NULL);
+  self->pictures = g_slist_copy ((GSList*) pictures);
+  g_slist_foreach (self->pictures, (GFunc)g_object_ref, NULL);
 }
 
 static void _set_groups (FrogrAddToGroupDialog *self, const GSList *groups)
 {
-  FrogrAddToGroupDialogPrivate *priv = NULL;
-
-  priv = FROGR_ADD_TO_GROUP_DIALOG_GET_PRIVATE (self);
-  priv->groups = g_slist_copy ((GSList*)groups);
-  g_slist_foreach (priv->groups, (GFunc)g_object_ref, NULL);
+  self->groups = g_slist_copy ((GSList*)groups);
+  g_slist_foreach (self->groups, (GFunc)g_object_ref, NULL);
 }
 
 static GtkWidget *
 _create_tree_view (FrogrAddToGroupDialog *self)
 {
-  FrogrAddToGroupDialogPrivate *priv = NULL;
   GtkWidget *treeview = NULL;
   GtkTreeViewColumn *col = NULL;
   GtkCellRenderer *rend = NULL;
 
-  priv = FROGR_ADD_TO_GROUP_DIALOG_GET_PRIVATE (self);
   treeview = gtk_tree_view_new();
 
   /* Checkbox */
@@ -147,7 +140,7 @@ _create_tree_view (FrogrAddToGroupDialog *self)
   g_signal_connect (col, "clicked",
                     G_CALLBACK (_column_clicked_cb), self);
 
-  priv->checkbox_col = col;
+  self->checkbox_col = col;
 
   /* Name */
   rend = gtk_cell_renderer_text_new ();
@@ -162,7 +155,7 @@ _create_tree_view (FrogrAddToGroupDialog *self)
   g_signal_connect (col, "clicked",
                     G_CALLBACK (_column_clicked_cb), self);
 
-  priv->name_col = col;
+  self->name_col = col;
 
   /* Description */
   rend = gtk_cell_renderer_text_new ();
@@ -177,7 +170,7 @@ _create_tree_view (FrogrAddToGroupDialog *self)
   g_signal_connect (col, "clicked",
                     G_CALLBACK (_column_clicked_cb), self);
 
-  priv->n_elements_col = col;
+  self->n_elements_col = col;
 
   return treeview;
 }
@@ -186,21 +179,19 @@ static void
 _column_clicked_cb (GtkTreeViewColumn *col, gpointer data)
 {
   FrogrAddToGroupDialog *self = NULL;
-  FrogrAddToGroupDialogPrivate *priv = NULL;
   GtkTreeModel *model = NULL;
 
   self = FROGR_ADD_TO_GROUP_DIALOG (data);
-  priv = FROGR_ADD_TO_GROUP_DIALOG_GET_PRIVATE (self);
 
-  model = gtk_tree_view_get_model (GTK_TREE_VIEW (priv->treeview));
+  model = gtk_tree_view_get_model (GTK_TREE_VIEW (self->treeview));
   if (!GTK_IS_TREE_SORTABLE (model))
     return;
 
-  if (col == priv->checkbox_col)
+  if (col == self->checkbox_col)
     _toggle_column_sort_order (GTK_TREE_SORTABLE (model), col, CHECKBOX_COL);
-  else if (col == priv->name_col)
+  else if (col == self->name_col)
     _toggle_column_sort_order (GTK_TREE_SORTABLE (model), col, NAME_COL);
-  else if (col == priv->n_elements_col)
+  else if (col == self->n_elements_col)
     _toggle_column_sort_order (GTK_TREE_SORTABLE (model), col, N_ELEMENTS_COL);
   else
     g_assert_not_reached ();
@@ -256,15 +247,12 @@ _tree_iter_compare_n_elements_func (GtkTreeModel *model,
 static void
 _populate_treemodel_with_groups (FrogrAddToGroupDialog *self)
 {
-  FrogrAddToGroupDialogPrivate *priv = NULL;
   FrogrGroup *group = NULL;
   GtkTreeIter iter;
   GSList *current = NULL;
   gchar *n_elements_str = NULL;
 
-  priv = FROGR_ADD_TO_GROUP_DIALOG_GET_PRIVATE (self);
-
-  for (current = priv->groups; current; current = g_slist_next (current))
+  for (current = self->groups; current; current = g_slist_next (current))
     {
       if (!FROGR_IS_GROUP (current->data))
         continue;
@@ -272,8 +260,8 @@ _populate_treemodel_with_groups (FrogrAddToGroupDialog *self)
       group = FROGR_GROUP (current->data);
       n_elements_str = g_strdup_printf ("%d", frogr_group_get_n_photos (group));
 
-      gtk_list_store_append (GTK_LIST_STORE (priv->treemodel), &iter);
-      gtk_list_store_set (GTK_LIST_STORE (priv->treemodel), &iter,
+      gtk_list_store_append (GTK_LIST_STORE (self->treemodel), &iter);
+      gtk_list_store_set (GTK_LIST_STORE (self->treemodel), &iter,
                           CHECKBOX_COL, FALSE,
                           NAME_COL, frogr_group_get_name (group),
                           N_ELEMENTS_COL, n_elements_str,
@@ -286,31 +274,29 @@ _populate_treemodel_with_groups (FrogrAddToGroupDialog *self)
 static void
 _fill_dialog_with_data (FrogrAddToGroupDialog *self)
 {
-  FrogrAddToGroupDialogPrivate *priv = NULL;
   GtkTreeIter iter;
   gint n_groups;
   gint n_pictures;
 
-  priv = FROGR_ADD_TO_GROUP_DIALOG_GET_PRIVATE (self);
-  n_groups = g_slist_length (priv->groups);
-  n_pictures = g_slist_length (priv->pictures);
+  n_groups = g_slist_length (self->groups);
+  n_pictures = g_slist_length (self->pictures);
 
   /* No groups, nothing to do */
   if (n_groups == 0 || n_pictures == 0)
     return;
 
   /* Iterate over all the items */
-  gtk_tree_model_get_iter_first (priv->treemodel, &iter);
+  gtk_tree_model_get_iter_first (self->treemodel, &iter);
   do
     {
       FrogrGroup *group = NULL;
       GSList *p_item = NULL;
       gboolean do_check = TRUE;
 
-      gtk_tree_model_get (GTK_TREE_MODEL (priv->treemodel), &iter,
+      gtk_tree_model_get (GTK_TREE_MODEL (self->treemodel), &iter,
                           GROUP_COL, &group, -1);
 
-      for (p_item = priv->pictures; p_item; p_item = g_slist_next (p_item))
+      for (p_item = self->pictures; p_item; p_item = g_slist_next (p_item))
         {
           FrogrPicture *picture = NULL;
 
@@ -323,10 +309,10 @@ _fill_dialog_with_data (FrogrAddToGroupDialog *self)
         }
       g_object_unref (group);
 
-      gtk_list_store_set (GTK_LIST_STORE (priv->treemodel), &iter,
+      gtk_list_store_set (GTK_LIST_STORE (self->treemodel), &iter,
                           CHECKBOX_COL, do_check, -1);
     }
-  while (gtk_tree_model_iter_next (priv->treemodel, &iter));
+  while (gtk_tree_model_iter_next (self->treemodel, &iter));
 }
 
 static void
@@ -357,34 +343,31 @@ _group_toggled_cb (GtkCellRendererToggle *celltoggle,
 static GSList *
 _get_selected_groups (FrogrAddToGroupDialog *self)
 {
-  FrogrAddToGroupDialogPrivate *priv = NULL;
   GtkTreeIter iter;
   gboolean selected = FALSE;
   FrogrGroup *group = NULL;
   GSList *selected_groups = NULL;
 
-  priv = FROGR_ADD_TO_GROUP_DIALOG_GET_PRIVATE (self);
-
   /* No groups, nothing to do */
-  if (g_slist_length (priv->groups) == 0)
+  if (g_slist_length (self->groups) == 0)
     return NULL;
 
   /* Iterate over all the items */
-  gtk_tree_model_get_iter_first (priv->treemodel, &iter);
+  gtk_tree_model_get_iter_first (self->treemodel, &iter);
   do
     {
-      gtk_tree_model_get (GTK_TREE_MODEL (priv->treemodel), &iter,
+      gtk_tree_model_get (GTK_TREE_MODEL (self->treemodel), &iter,
                           CHECKBOX_COL, &selected, -1);
       if (!selected)
         continue;
 
-      gtk_tree_model_get (GTK_TREE_MODEL (priv->treemodel), &iter,
+      gtk_tree_model_get (GTK_TREE_MODEL (self->treemodel), &iter,
                           GROUP_COL, &group, -1);
 
       if (FROGR_IS_GROUP (group))
         selected_groups = g_slist_append (selected_groups, group);
     }
-  while (gtk_tree_model_iter_next (priv->treemodel, &iter));
+  while (gtk_tree_model_iter_next (self->treemodel, &iter));
 
   return selected_groups;
 }
@@ -392,19 +375,16 @@ _get_selected_groups (FrogrAddToGroupDialog *self)
 static void
 _update_pictures (FrogrAddToGroupDialog *self)
 {
-  FrogrAddToGroupDialogPrivate *priv = NULL;
   FrogrPicture *picture = NULL;
   GSList *selected_groups = NULL;
   GSList *item = NULL;
 
-  priv = FROGR_ADD_TO_GROUP_DIALOG_GET_PRIVATE (self);
-
   selected_groups = _get_selected_groups (self);
   if (selected_groups)
     {
       FrogrModel *model = NULL;
 
-      for (item = priv->pictures; item; item = g_slist_next (item))
+      for (item = self->pictures; item; item = g_slist_next (item))
         {
           picture = FROGR_PICTURE (item->data);
 
@@ -460,15 +440,15 @@ _frogr_add_to_group_dialog_get_property (GObject *object,
                                          GValue *value,
                                          GParamSpec *pspec)
 {
-  FrogrAddToGroupDialogPrivate *priv = FROGR_ADD_TO_GROUP_DIALOG_GET_PRIVATE (object);
+  FrogrAddToGroupDialog *dialog = FROGR_ADD_TO_GROUP_DIALOG (object);
 
   switch (prop_id)
     {
     case PROP_PICTURES:
-      g_value_set_pointer (value, priv->pictures);
+      g_value_set_pointer (value, dialog->pictures);
       break;
     case PROP_GROUPS:
-      g_value_set_pointer (value, priv->groups);
+      g_value_set_pointer (value, dialog->groups);
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -479,27 +459,27 @@ _frogr_add_to_group_dialog_get_property (GObject *object,
 static void
 _frogr_add_to_group_dialog_dispose (GObject *object)
 {
-  FrogrAddToGroupDialogPrivate *priv = FROGR_ADD_TO_GROUP_DIALOG_GET_PRIVATE (object);
+  FrogrAddToGroupDialog *dialog = FROGR_ADD_TO_GROUP_DIALOG (object);
 
-  if (priv->pictures)
+  if (dialog->pictures)
     {
-      g_slist_foreach (priv->pictures, (GFunc)g_object_unref, NULL);
-      g_slist_free (priv->pictures);
-      priv->pictures = NULL;
+      g_slist_foreach (dialog->pictures, (GFunc)g_object_unref, NULL);
+      g_slist_free (dialog->pictures);
+      dialog->pictures = NULL;
     }
 
-   if (priv->groups)
+   if (dialog->groups)
     {
-      g_slist_foreach (priv->groups, (GFunc)g_object_unref, NULL);
-      g_slist_free (priv->groups);
-      priv->groups = NULL;
+      g_slist_foreach (dialog->groups, (GFunc)g_object_unref, NULL);
+      g_slist_free (dialog->groups);
+      dialog->groups = NULL;
     }
 
-  if (priv->treemodel)
+  if (dialog->treemodel)
     {
-      gtk_list_store_clear (GTK_LIST_STORE (priv->treemodel));
-      g_object_unref (priv->treemodel);
-      priv->treemodel = NULL;
+      gtk_list_store_clear (GTK_LIST_STORE (dialog->treemodel));
+      g_object_unref (dialog->treemodel);
+      dialog->treemodel = NULL;
     }
 
   G_OBJECT_CLASS(frogr_add_to_group_dialog_parent_class)->dispose (object);
@@ -532,20 +512,16 @@ frogr_add_to_group_dialog_class_init (FrogrAddToGroupDialogClass *klass)
                                 G_PARAM_READWRITE
                                 | G_PARAM_CONSTRUCT_ONLY);
   g_object_class_install_property (obj_class, PROP_GROUPS, pspec);
-
-  g_type_class_add_private (obj_class, sizeof (FrogrAddToGroupDialogPrivate));
 }
 
 static void
 frogr_add_to_group_dialog_init (FrogrAddToGroupDialog *self)
 {
-  FrogrAddToGroupDialogPrivate *priv = NULL;
   GtkWidget *vbox = NULL;
   GtkWidget *widget = NULL;
 
-  priv = FROGR_ADD_TO_GROUP_DIALOG_GET_PRIVATE (self);
-  priv->pictures = NULL;
-  priv->groups = NULL;
+  self->pictures = NULL;
+  self->groups = NULL;
 
   /* Create widgets */
   gtk_dialog_add_buttons (GTK_DIALOG (self),
@@ -566,17 +542,17 @@ frogr_add_to_group_dialog_init (FrogrAddToGroupDialog *self)
                                        GTK_SHADOW_ETCHED_IN);
   gtk_box_pack_start (GTK_BOX (vbox), widget, TRUE, TRUE, 6);
 
-  priv->treeview = _create_tree_view (self);
-  gtk_container_add (GTK_CONTAINER (widget), priv->treeview);
+  self->treeview = _create_tree_view (self);
+  gtk_container_add (GTK_CONTAINER (widget), self->treeview);
 
-  priv->treemodel =
+  self->treemodel =
     GTK_TREE_MODEL (gtk_list_store_new (4, G_TYPE_BOOLEAN,
                                         G_TYPE_STRING, G_TYPE_STRING,
                                         G_TYPE_OBJECT));
-  gtk_tree_view_set_model (GTK_TREE_VIEW (priv->treeview), priv->treemodel);
+  gtk_tree_view_set_model (GTK_TREE_VIEW (self->treeview), self->treemodel);
 
   /* Sorting function for the number of elements column */
-  gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (priv->treemodel),
+  gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (self->treemodel),
                                    N_ELEMENTS_COL,
                                    _tree_iter_compare_n_elements_func,
                                    self, NULL);
diff --git a/src/frogr-add-to-group-dialog.h b/src/frogr-add-to-group-dialog.h
index 022d27e..14c3992 100644
--- a/src/frogr-add-to-group-dialog.h
+++ b/src/frogr-add-to-group-dialog.h
@@ -25,27 +25,9 @@
 
 G_BEGIN_DECLS
 
-#define FROGR_TYPE_ADD_TO_GROUP_DIALOG           (frogr_add_to_group_dialog_get_type())
-#define FROGR_ADD_TO_GROUP_DIALOG(obj)           (G_TYPE_CHECK_INSTANCE_CAST(obj, 
FROGR_TYPE_ADD_TO_GROUP_DIALOG, FrogrAddToGroupDialog))
-#define FROGR_ADD_TO_GROUP_DIALOG_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST(klass, 
FROGR_TYPE_ADD_TO_GROUP_DIALOG, FrogrAddToGroupDialogClass))
-#define FROGR_IS_ADD_TO_GROUP_DIALOG(obj)           (G_TYPE_CHECK_INSTANCE_TYPE(obj, 
FROGR_TYPE_ADD_TO_GROUP_DIALOG))
-#define FROGR_IS_ADD_TO_GROUP_DIALOG_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE((klass), 
FROGR_TYPE_ADD_TO_GROUP_DIALOG))
-#define FROGR_ADD_TO_GROUP_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), 
FROGR_TYPE_ADD_TO_GROUP_DIALOG, FrogrAddToGroupDialogClass))
-
-typedef struct _FrogrAddToGroupDialog        FrogrAddToGroupDialog;
-typedef struct _FrogrAddToGroupDialogClass   FrogrAddToGroupDialogClass;
-
-struct _FrogrAddToGroupDialogClass
-{
-  GtkDialogClass parent_class;
-};
-
-struct _FrogrAddToGroupDialog
-{
-  GtkDialog parent;
-};
-
-GType frogr_add_to_group_dialog_get_type (void) G_GNUC_CONST;
+#define FROGR_TYPE_ADD_TO_GROUP_DIALOG (frogr_add_to_group_dialog_get_type())
+
+G_DECLARE_FINAL_TYPE (FrogrAddToGroupDialog, frogr_add_to_group_dialog, FROGR, ADD_TO_GROUP_DIALOG, 
GtkDialog)
 
 void frogr_add_to_group_dialog_show (GtkWindow *parent,
                                      const GSList *pictures,
diff --git a/src/frogr-add-to-set-dialog.c b/src/frogr-add-to-set-dialog.c
index 9f58b4b..b7f37a8 100644
--- a/src/frogr-add-to-set-dialog.c
+++ b/src/frogr-add-to-set-dialog.c
@@ -31,14 +31,10 @@
 #define MINIMUM_WINDOW_WIDTH 540
 #define MINIMUM_WINDOW_HEIGHT 420
 
-#define FROGR_ADD_TO_SET_DIALOG_GET_PRIVATE(object)             \
-  (G_TYPE_INSTANCE_GET_PRIVATE ((object),                       \
-                                FROGR_TYPE_ADD_TO_SET_DIALOG,   \
-                                FrogrAddToSetDialogPrivate))
 
-G_DEFINE_TYPE (FrogrAddToSetDialog, frogr_add_to_set_dialog, GTK_TYPE_DIALOG)
+struct _FrogrAddToSetDialog {
+  GtkDialog parent;
 
-typedef struct _FrogrAddToSetDialogPrivate {
   GtkWidget *treeview;
   GtkTreeModel *treemodel;
 
@@ -48,7 +44,10 @@ typedef struct _FrogrAddToSetDialogPrivate {
 
   GSList *pictures;
   GSList *photosets;
-} FrogrAddToSetDialogPrivate;
+};
+
+G_DEFINE_TYPE (FrogrAddToSetDialog, frogr_add_to_set_dialog, GTK_TYPE_DIALOG)
+
 
 /* Properties */
 enum  {
@@ -106,30 +105,24 @@ static void _dialog_response_cb (GtkDialog *dialog, gint response, gpointer data
 static void
 _set_pictures (FrogrAddToSetDialog *self, const GSList *pictures)
 {
-  FrogrAddToSetDialogPrivate *priv = FROGR_ADD_TO_SET_DIALOG_GET_PRIVATE (self);
-  priv->pictures = g_slist_copy ((GSList*) pictures);
-  g_slist_foreach (priv->pictures, (GFunc)g_object_ref, NULL);
+  self->pictures = g_slist_copy ((GSList*) pictures);
+  g_slist_foreach (self->pictures, (GFunc)g_object_ref, NULL);
 }
 
 static void
 _set_photosets (FrogrAddToSetDialog *self, const GSList *photosets)
 {
-  FrogrAddToSetDialogPrivate *priv = NULL;
-
-  priv = FROGR_ADD_TO_SET_DIALOG_GET_PRIVATE (self);
-  priv->photosets = g_slist_copy ((GSList*)photosets);
-  g_slist_foreach (priv->photosets, (GFunc)g_object_ref, NULL);
+  self->photosets = g_slist_copy ((GSList*)photosets);
+  g_slist_foreach (self->photosets, (GFunc)g_object_ref, NULL);
 }
 
 static GtkWidget *
 _create_tree_view (FrogrAddToSetDialog *self)
 {
-  FrogrAddToSetDialogPrivate *priv = NULL;
   GtkWidget *treeview = NULL;
   GtkTreeViewColumn *col = NULL;
   GtkCellRenderer *rend = NULL;
 
-  priv = FROGR_ADD_TO_SET_DIALOG_GET_PRIVATE (self);
   treeview = gtk_tree_view_new();
 
   /* Checkbox */
@@ -148,7 +141,7 @@ _create_tree_view (FrogrAddToSetDialog *self)
   g_signal_connect (col, "clicked",
                     G_CALLBACK (_column_clicked_cb), self);
 
-  priv->checkbox_col = col;
+  self->checkbox_col = col;
 
   /* Title */
   rend = gtk_cell_renderer_text_new ();
@@ -163,7 +156,7 @@ _create_tree_view (FrogrAddToSetDialog *self)
   g_signal_connect (col, "clicked",
                     G_CALLBACK (_column_clicked_cb), self);
 
-  priv->title_col = col;
+  self->title_col = col;
 
   /* Description */
   rend = gtk_cell_renderer_text_new ();
@@ -178,7 +171,7 @@ _create_tree_view (FrogrAddToSetDialog *self)
   g_signal_connect (col, "clicked",
                     G_CALLBACK (_column_clicked_cb), self);
 
-  priv->n_elements_col = col;
+  self->n_elements_col = col;
 
   return treeview;
 }
@@ -187,21 +180,19 @@ static void
 _column_clicked_cb (GtkTreeViewColumn *col, gpointer data)
 {
   FrogrAddToSetDialog *self = NULL;
-  FrogrAddToSetDialogPrivate *priv = NULL;
   GtkTreeModel *model = NULL;
 
   self = FROGR_ADD_TO_SET_DIALOG (data);
-  priv = FROGR_ADD_TO_SET_DIALOG_GET_PRIVATE (self);
 
-  model = gtk_tree_view_get_model (GTK_TREE_VIEW (priv->treeview));
+  model = gtk_tree_view_get_model (GTK_TREE_VIEW (self->treeview));
   if (!GTK_IS_TREE_SORTABLE (model))
     return;
 
-  if (col == priv->checkbox_col)
+  if (col == self->checkbox_col)
     _toggle_column_sort_order (GTK_TREE_SORTABLE (model), col, CHECKBOX_COL);
-  else if (col == priv->title_col)
+  else if (col == self->title_col)
     _toggle_column_sort_order (GTK_TREE_SORTABLE (model), col, TITLE_COL);
-  else if (col == priv->n_elements_col)
+  else if (col == self->n_elements_col)
     _toggle_column_sort_order (GTK_TREE_SORTABLE (model), col, N_ELEMENTS_COL);
   else
     g_assert_not_reached ();
@@ -257,15 +248,12 @@ _tree_iter_compare_n_elements_func (GtkTreeModel *model,
 static void
 _populate_treemodel_with_photosets (FrogrAddToSetDialog *self)
 {
-  FrogrAddToSetDialogPrivate *priv = NULL;
   FrogrPhotoSet *set = NULL;
   GtkTreeIter iter;
   GSList *current = NULL;
   gchar *n_elements_str = NULL;
 
-  priv = FROGR_ADD_TO_SET_DIALOG_GET_PRIVATE (self);
-
-  for (current = priv->photosets; current; current = g_slist_next (current))
+  for (current = self->photosets; current; current = g_slist_next (current))
     {
       if (!FROGR_IS_PHOTOSET (current->data))
         continue;
@@ -273,8 +261,8 @@ _populate_treemodel_with_photosets (FrogrAddToSetDialog *self)
       set = FROGR_PHOTOSET (current->data);
       n_elements_str = g_strdup_printf ("%d", frogr_photoset_get_n_photos (set));
 
-      gtk_list_store_append (GTK_LIST_STORE (priv->treemodel), &iter);
-      gtk_list_store_set (GTK_LIST_STORE (priv->treemodel), &iter,
+      gtk_list_store_append (GTK_LIST_STORE (self->treemodel), &iter);
+      gtk_list_store_set (GTK_LIST_STORE (self->treemodel), &iter,
                           CHECKBOX_COL, FALSE,
                           TITLE_COL, frogr_photoset_get_title (set),
                           N_ELEMENTS_COL, n_elements_str,
@@ -287,31 +275,29 @@ _populate_treemodel_with_photosets (FrogrAddToSetDialog *self)
 static void
 _fill_dialog_with_data (FrogrAddToSetDialog *self)
 {
-  FrogrAddToSetDialogPrivate *priv = NULL;
   GtkTreeIter iter;
   gint n_sets;
   gint n_pictures;
 
-  priv = FROGR_ADD_TO_SET_DIALOG_GET_PRIVATE (self);
-  n_sets = g_slist_length (priv->photosets);
-  n_pictures = g_slist_length (priv->pictures);
+  n_sets = g_slist_length (self->photosets);
+  n_pictures = g_slist_length (self->pictures);
 
   /* No sets, nothing to do */
   if (n_sets == 0 || n_pictures == 0)
     return;
 
   /* Iterate over all the items */
-  gtk_tree_model_get_iter_first (priv->treemodel, &iter);
+  gtk_tree_model_get_iter_first (self->treemodel, &iter);
   do
     {
       FrogrPhotoSet *set = NULL;
       GSList *p_item = NULL;
       gboolean do_check = TRUE;
 
-      gtk_tree_model_get (GTK_TREE_MODEL (priv->treemodel), &iter,
+      gtk_tree_model_get (GTK_TREE_MODEL (self->treemodel), &iter,
                           SET_COL, &set, -1);
 
-      for (p_item = priv->pictures; p_item; p_item = g_slist_next (p_item))
+      for (p_item = self->pictures; p_item; p_item = g_slist_next (p_item))
         {
           FrogrPicture *picture = NULL;
 
@@ -324,10 +310,10 @@ _fill_dialog_with_data (FrogrAddToSetDialog *self)
         }
       g_object_unref (set);
 
-      gtk_list_store_set (GTK_LIST_STORE (priv->treemodel), &iter,
+      gtk_list_store_set (GTK_LIST_STORE (self->treemodel), &iter,
                           CHECKBOX_COL, do_check, -1);
     }
-  while (gtk_tree_model_iter_next (priv->treemodel, &iter));
+  while (gtk_tree_model_iter_next (self->treemodel, &iter));
 }
 
 static void
@@ -358,34 +344,31 @@ _set_toggled_cb (GtkCellRendererToggle *celltoggle,
 static GSList *
 _get_selected_photosets (FrogrAddToSetDialog *self)
 {
-  FrogrAddToSetDialogPrivate *priv = NULL;
   GtkTreeIter iter;
   gboolean selected = FALSE;
   FrogrPhotoSet *set = NULL;
   GSList *selected_sets = NULL;
 
-  priv = FROGR_ADD_TO_SET_DIALOG_GET_PRIVATE (self);
-
   /* No sets, nothing to do */
-  if (g_slist_length (priv->photosets) == 0)
+  if (g_slist_length (self->photosets) == 0)
     return NULL;
 
   /* Iterate over all the items */
-  gtk_tree_model_get_iter_first (priv->treemodel, &iter);
+  gtk_tree_model_get_iter_first (self->treemodel, &iter);
   do
     {
-      gtk_tree_model_get (GTK_TREE_MODEL (priv->treemodel), &iter,
+      gtk_tree_model_get (GTK_TREE_MODEL (self->treemodel), &iter,
                           CHECKBOX_COL, &selected, -1);
       if (!selected)
         continue;
 
-      gtk_tree_model_get (GTK_TREE_MODEL (priv->treemodel), &iter,
+      gtk_tree_model_get (GTK_TREE_MODEL (self->treemodel), &iter,
                           SET_COL, &set, -1);
 
       if (FROGR_IS_PHOTOSET (set))
         selected_sets = g_slist_append (selected_sets, set);
     }
-  while (gtk_tree_model_iter_next (priv->treemodel, &iter));
+  while (gtk_tree_model_iter_next (self->treemodel, &iter));
 
   return selected_sets;
 }
@@ -393,19 +376,16 @@ _get_selected_photosets (FrogrAddToSetDialog *self)
 static void
 _update_pictures (FrogrAddToSetDialog *self)
 {
-  FrogrAddToSetDialogPrivate *priv = NULL;
   FrogrPicture *picture = NULL;
   GSList *selected_sets = NULL;
   GSList *item = NULL;
 
-  priv = FROGR_ADD_TO_SET_DIALOG_GET_PRIVATE (self);
-
   selected_sets = _get_selected_photosets (self);
   if (selected_sets)
     {
       FrogrModel *model = NULL;
 
-      for (item = priv->pictures; item; item = g_slist_next (item))
+      for (item = self->pictures; item; item = g_slist_next (item))
         {
           picture = FROGR_PICTURE (item->data);
 
@@ -461,15 +441,15 @@ _frogr_add_to_set_dialog_get_property (GObject *object,
                                        GValue *value,
                                        GParamSpec *pspec)
 {
-  FrogrAddToSetDialogPrivate *priv = FROGR_ADD_TO_SET_DIALOG_GET_PRIVATE (object);
+  FrogrAddToSetDialog *dialog = FROGR_ADD_TO_SET_DIALOG (object);
 
   switch (prop_id)
     {
     case PROP_PICTURES:
-      g_value_set_pointer (value, priv->pictures);
+      g_value_set_pointer (value, dialog->pictures);
       break;
     case PROP_PHOTOSETS:
-      g_value_set_pointer (value, priv->photosets);
+      g_value_set_pointer (value, dialog->photosets);
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -480,27 +460,27 @@ _frogr_add_to_set_dialog_get_property (GObject *object,
 static void
 _frogr_add_to_set_dialog_dispose (GObject *object)
 {
-  FrogrAddToSetDialogPrivate *priv = FROGR_ADD_TO_SET_DIALOG_GET_PRIVATE (object);
+  FrogrAddToSetDialog *dialog = FROGR_ADD_TO_SET_DIALOG (object);
 
-  if (priv->pictures)
+  if (dialog->pictures)
     {
-      g_slist_foreach (priv->pictures, (GFunc)g_object_unref, NULL);
-      g_slist_free (priv->pictures);
-      priv->pictures = NULL;
+      g_slist_foreach (dialog->pictures, (GFunc)g_object_unref, NULL);
+      g_slist_free (dialog->pictures);
+      dialog->pictures = NULL;
     }
 
-   if (priv->photosets)
+   if (dialog->photosets)
     {
-      g_slist_foreach (priv->photosets, (GFunc)g_object_unref, NULL);
-      g_slist_free (priv->photosets);
-      priv->photosets = NULL;
+      g_slist_foreach (dialog->photosets, (GFunc)g_object_unref, NULL);
+      g_slist_free (dialog->photosets);
+      dialog->photosets = NULL;
     }
 
-  if (priv->treemodel)
+  if (dialog->treemodel)
     {
-      gtk_list_store_clear (GTK_LIST_STORE (priv->treemodel));
-      g_object_unref (priv->treemodel);
-      priv->treemodel = NULL;
+      gtk_list_store_clear (GTK_LIST_STORE (dialog->treemodel));
+      g_object_unref (dialog->treemodel);
+      dialog->treemodel = NULL;
     }
 
   G_OBJECT_CLASS(frogr_add_to_set_dialog_parent_class)->dispose (object);
@@ -533,20 +513,16 @@ frogr_add_to_set_dialog_class_init (FrogrAddToSetDialogClass *klass)
                                 G_PARAM_READWRITE
                                 | G_PARAM_CONSTRUCT_ONLY);
   g_object_class_install_property (obj_class, PROP_PHOTOSETS, pspec);
-
-  g_type_class_add_private (obj_class, sizeof (FrogrAddToSetDialogPrivate));
 }
 
 static void
 frogr_add_to_set_dialog_init (FrogrAddToSetDialog *self)
 {
-  FrogrAddToSetDialogPrivate *priv = NULL;
   GtkWidget *vbox = NULL;
   GtkWidget *widget = NULL;
 
-  priv = FROGR_ADD_TO_SET_DIALOG_GET_PRIVATE (self);
-  priv->pictures = NULL;
-  priv->photosets = NULL;
+  self->pictures = NULL;
+  self->photosets = NULL;
 
   /* Create widgets */
   gtk_dialog_add_buttons (GTK_DIALOG (self),
@@ -567,17 +543,17 @@ frogr_add_to_set_dialog_init (FrogrAddToSetDialog *self)
                                        GTK_SHADOW_ETCHED_IN);
   gtk_box_pack_start (GTK_BOX (vbox), widget, TRUE, TRUE, 6);
 
-  priv->treeview = _create_tree_view (self);
-  gtk_container_add (GTK_CONTAINER (widget), priv->treeview);
+  self->treeview = _create_tree_view (self);
+  gtk_container_add (GTK_CONTAINER (widget), self->treeview);
 
-  priv->treemodel =
+  self->treemodel =
     GTK_TREE_MODEL (gtk_list_store_new (4, G_TYPE_BOOLEAN,
                                         G_TYPE_STRING, G_TYPE_STRING,
                                         G_TYPE_OBJECT));
-  gtk_tree_view_set_model (GTK_TREE_VIEW (priv->treeview), priv->treemodel);
+  gtk_tree_view_set_model (GTK_TREE_VIEW (self->treeview), self->treemodel);
 
   /* Sorting function for the number of elements column */
-  gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (priv->treemodel),
+  gtk_tree_sortable_set_sort_func (GTK_TREE_SORTABLE (self->treemodel),
                                    N_ELEMENTS_COL,
                                    _tree_iter_compare_n_elements_func,
                                    self, NULL);
diff --git a/src/frogr-add-to-set-dialog.h b/src/frogr-add-to-set-dialog.h
index 616090d..5ee5061 100644
--- a/src/frogr-add-to-set-dialog.h
+++ b/src/frogr-add-to-set-dialog.h
@@ -25,27 +25,9 @@
 
 G_BEGIN_DECLS
 
-#define FROGR_TYPE_ADD_TO_SET_DIALOG           (frogr_add_to_set_dialog_get_type())
-#define FROGR_ADD_TO_SET_DIALOG(obj)           (G_TYPE_CHECK_INSTANCE_CAST(obj, 
FROGR_TYPE_ADD_TO_SET_DIALOG, FrogrAddToSetDialog))
-#define FROGR_ADD_TO_SET_DIALOG_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST(klass, FROGR_TYPE_ADD_TO_SET_DIALOG, 
FrogrAddToSetDialogClass))
-#define FROGR_IS_ADD_TO_SET_DIALOG(obj)           (G_TYPE_CHECK_INSTANCE_TYPE(obj, 
FROGR_TYPE_ADD_TO_SET_DIALOG))
-#define FROGR_IS_ADD_TO_SET_DIALOG_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE((klass), 
FROGR_TYPE_ADD_TO_SET_DIALOG))
-#define FROGR_ADD_TO_SET_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), 
FROGR_TYPE_ADD_TO_SET_DIALOG, FrogrAddToSetDialogClass))
-
-typedef struct _FrogrAddToSetDialog        FrogrAddToSetDialog;
-typedef struct _FrogrAddToSetDialogClass   FrogrAddToSetDialogClass;
-
-struct _FrogrAddToSetDialogClass
-{
-  GtkDialogClass parent_class;
-};
-
-struct _FrogrAddToSetDialog
-{
-  GtkDialog parent;
-};
-
-GType frogr_add_to_set_dialog_get_type (void) G_GNUC_CONST;
+#define FROGR_TYPE_ADD_TO_SET_DIALOG (frogr_add_to_set_dialog_get_type())
+
+G_DECLARE_FINAL_TYPE (FrogrAddToSetDialog, frogr_add_to_set_dialog, FROGR, ADD_TO_SET_DIALOG, GtkDialog)
 
 void frogr_add_to_set_dialog_show (GtkWindow *parent,
                                    const GSList *pictures,
diff --git a/src/frogr-config.c b/src/frogr-config.c
index 2a20308..dee445a 100644
--- a/src/frogr-config.c
+++ b/src/frogr-config.c
@@ -34,18 +34,11 @@
 #define ACCOUNTS_FILENAME "accounts.xml"
 #define SETTINGS_FILENAME "settings.xml"
 
-#define FROGR_CONFIG_GET_PRIVATE(object)                \
-  (G_TYPE_INSTANCE_GET_PRIVATE ((object),               \
-                                FROGR_TYPE_CONFIG,      \
-                                FrogrConfigPrivate))
 
-
-G_DEFINE_TYPE (FrogrConfig, frogr_config, G_TYPE_OBJECT)
-
-
-typedef struct _FrogrConfigPrivate FrogrConfigPrivate;
-struct _FrogrConfigPrivate
+struct _FrogrConfig
 {
+  GObject parent;
+
   gchar *config_dir;
 
   GSList *accounts;
@@ -80,6 +73,9 @@ struct _FrogrConfigPrivate
   gchar *settings_version;
 };
 
+G_DEFINE_TYPE (FrogrConfig, frogr_config, G_TYPE_OBJECT)
+
+
 static FrogrConfig *_instance = NULL;
 
 /* Prototypes */
@@ -130,15 +126,13 @@ static xmlNodePtr _xml_add_string_child (xmlNodePtr   parent,
 static FrogrAccount *
 _find_account_by_username (FrogrConfig *self, const gchar *username)
 {
-  FrogrConfigPrivate *priv = NULL;
   FrogrAccount *current = NULL;
   GSList *item = NULL;
 
   g_return_val_if_fail (FROGR_IS_CONFIG (self), NULL);
   g_return_val_if_fail (username != NULL, NULL);
 
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  for (item = priv->accounts; item; item = g_slist_next (item))
+  for (item = self->accounts; item; item = g_slist_next (item))
     {
       current = FROGR_ACCOUNT (item->data);
       if (!g_strcmp0 (username, frogr_account_get_username (current)))
@@ -151,23 +145,20 @@ _find_account_by_username (FrogrConfig *self, const gchar *username)
 static void
 _load_settings (FrogrConfig *self)
 {
-  FrogrConfigPrivate *priv = NULL;
   gchar *xml_path = NULL;
   xmlNodePtr node = NULL;
   xmlDocPtr xml = NULL;
 
   g_return_if_fail (FROGR_IS_CONFIG (self));
 
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-
-  xml_path = g_build_filename (priv->config_dir, SETTINGS_FILENAME, NULL);
+  xml_path = g_build_filename (self->config_dir, SETTINGS_FILENAME, NULL);
   if (g_file_test (xml_path, G_FILE_TEST_IS_REGULAR))
     xml = xmlParseFile (xml_path);
 
   if (xml)
     node = xmlDocGetRootElement (xml);
   else
-    DEBUG ("Could not load '%s/%s'", priv->config_dir, SETTINGS_FILENAME);
+    DEBUG ("Could not load '%s/%s'", self->config_dir, SETTINGS_FILENAME);
 
   if (node && node->name && !xmlStrcmp (node->name, (const xmlChar*) "settings"))
     {
@@ -176,8 +167,8 @@ _load_settings (FrogrConfig *self)
 
       /* Check version of the settings file first */
       version = xmlGetProp (node, (const xmlChar *) "version");
-      g_free (priv->settings_version);
-      priv->settings_version = g_strdup (version ? (gchar *) version : "1");
+      g_free (self->settings_version);
+      self->settings_version = g_strdup (version ? (gchar *) version : "1");
 
       if (version)
         xmlFree (version);
@@ -208,13 +199,13 @@ _load_settings (FrogrConfig *self)
                   switch (code)
                     {
                     case FSP_CONTENT_TYPE_SCREENSHOT:
-                      priv->content_type = FSP_CONTENT_TYPE_SCREENSHOT;
+                      self->content_type = FSP_CONTENT_TYPE_SCREENSHOT;
                       break;
                     case FSP_CONTENT_TYPE_OTHER:
-                      priv->content_type = FSP_CONTENT_TYPE_OTHER;
+                      self->content_type = FSP_CONTENT_TYPE_OTHER;
                       break;
                     default:
-                      priv->content_type = FSP_CONTENT_TYPE_PHOTO;
+                      self->content_type = FSP_CONTENT_TYPE_PHOTO;
                     }
                 }
             }
@@ -230,13 +221,13 @@ _load_settings (FrogrConfig *self)
                   switch (code)
                     {
                     case FSP_SAFETY_LEVEL_MODERATE:
-                      priv->safety_level = FSP_SAFETY_LEVEL_MODERATE;
+                      self->safety_level = FSP_SAFETY_LEVEL_MODERATE;
                       break;
                     case FSP_SAFETY_LEVEL_RESTRICTED:
-                      priv->safety_level = FSP_SAFETY_LEVEL_RESTRICTED;
+                      self->safety_level = FSP_SAFETY_LEVEL_RESTRICTED;
                       break;
                     default:
-                      priv->safety_level = FSP_SAFETY_LEVEL_SAFE;
+                      self->safety_level = FSP_SAFETY_LEVEL_SAFE;
                     }
                 }
             }
@@ -251,32 +242,32 @@ _load_settings (FrogrConfig *self)
                   code = (gint) g_ascii_strtoll ((gchar *) content, NULL, 10);
 
                   if (code < FSP_LICENSE_NONE || code >= FSP_LICENSE_LAST)
-                    priv->license = FSP_LICENSE_NONE;
+                    self->license = FSP_LICENSE_NONE;
                   else
-                    priv->license = (FspLicense) code;
+                    self->license = (FspLicense) code;
                 }
             }
 
           /* By mistake, the following information was saved in the wrong place in version '1' */
-          if (g_strcmp0 (priv->settings_version, "1"))
+          if (g_strcmp0 (self->settings_version, "1"))
             {
               if (!xmlStrcmp (node->name, (const xmlChar*) "default-send-geolocation-data"))
                 {
                   content = xmlNodeGetContent (node);
-                  priv->send_geolocation_data = !xmlStrcmp (content, (const xmlChar*) "1");
+                  self->send_geolocation_data = !xmlStrcmp (content, (const xmlChar*) "1");
                 }
 
               if (!xmlStrcmp (node->name, (const xmlChar*) "default-show-in-search"))
                 {
                   content = xmlNodeGetContent (node);
-                  priv->show_in_search = !xmlStrcmp (content, (const xmlChar*) "1");
+                  self->show_in_search = !xmlStrcmp (content, (const xmlChar*) "1");
                 }
             }
 
           if (!xmlStrcmp (node->name, (const xmlChar*) "default-replace-date-posted"))
             {
               content = xmlNodeGetContent (node);
-              priv->replace_date_posted = !xmlStrcmp (content, (const xmlChar*) "1");
+              self->replace_date_posted = !xmlStrcmp (content, (const xmlChar*) "1");
             }
 
           if (!xmlStrcmp (node->name, (const xmlChar*) "http-proxy"))
@@ -285,25 +276,25 @@ _load_settings (FrogrConfig *self)
           if (!xmlStrcmp (node->name, (const xmlChar*) "tags-autocompletion"))
             {
               content = xmlNodeGetContent (node);
-              priv->tags_autocompletion = !xmlStrcmp (content, (const xmlChar*) "1");
+              self->tags_autocompletion = !xmlStrcmp (content, (const xmlChar*) "1");
             }
 
           if (!xmlStrcmp (node->name, (const xmlChar*) "import-tags-from-metadata"))
             {
               content = xmlNodeGetContent (node);
-              priv->import_tags_from_metadata = !xmlStrcmp (content, (const xmlChar*) "1");
+              self->import_tags_from_metadata = !xmlStrcmp (content, (const xmlChar*) "1");
             }
 
           if (!xmlStrcmp (node->name, (const xmlChar*) "use-dark-theme"))
             {
               content = xmlNodeGetContent (node);
-              priv->use_dark_theme = !xmlStrcmp (content, (const xmlChar*) "1");
+              self->use_dark_theme = !xmlStrcmp (content, (const xmlChar*) "1");
             }
 
           if (!xmlStrcmp (node->name, (const xmlChar*) "keep-file-extensions"))
             {
               content = xmlNodeGetContent (node);
-              priv->keep_file_extensions = !xmlStrcmp (content, (const xmlChar*) "1");
+              self->keep_file_extensions = !xmlStrcmp (content, (const xmlChar*) "1");
             }
 
           if (content)
@@ -313,11 +304,11 @@ _load_settings (FrogrConfig *self)
   else if (node && node->name)
     {
       g_warning ("File '%s/%s' does not start with "
-                 "a <settings> tag", priv->config_dir, SETTINGS_FILENAME);
+                 "a <settings> tag", self->config_dir, SETTINGS_FILENAME);
     }
   else if (!node && xml)
     {
-      g_warning ("File '%s/%s' is empty", priv->config_dir, SETTINGS_FILENAME);
+      g_warning ("File '%s/%s' is empty", self->config_dir, SETTINGS_FILENAME);
     }
 
   if (xml)
@@ -331,7 +322,6 @@ _load_visibility_xml (FrogrConfig *self,
                       xmlDocPtr     xml,
                       xmlNodePtr    rootnode)
 {
-  FrogrConfigPrivate *priv = NULL;
   xmlNodePtr node;
   xmlChar *content = NULL;
 
@@ -339,8 +329,6 @@ _load_visibility_xml (FrogrConfig *self,
   g_return_if_fail (xml      != NULL);
   g_return_if_fail (rootnode != NULL);
 
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-
   /* Traverse child nodes and extract relevant information. */
   for (node = rootnode->children; node != NULL; node = node->next)
     {
@@ -353,34 +341,34 @@ _load_visibility_xml (FrogrConfig *self,
       if (!xmlStrcmp (node->name, (const xmlChar*) "public"))
         {
           content = xmlNodeGetContent (node);
-          priv->public = !xmlStrcmp (content, (const xmlChar*) "1");
+          self->public = !xmlStrcmp (content, (const xmlChar*) "1");
         }
 
       if (!xmlStrcmp (node->name, (const xmlChar*) "family"))
         {
           content = xmlNodeGetContent (node);
-          priv->family = !xmlStrcmp (content, (const xmlChar*) "1");
+          self->family = !xmlStrcmp (content, (const xmlChar*) "1");
         }
 
       if (!xmlStrcmp (node->name, (const xmlChar*) "friend"))
         {
           content = xmlNodeGetContent (node);
-          priv->friend = !xmlStrcmp (content, (const xmlChar*) "1");
+          self->friend = !xmlStrcmp (content, (const xmlChar*) "1");
         }
 
       /* By mistake, the following information was saved in the wrong place in version '1' */
-      if (!g_strcmp0 (priv->settings_version, "1"))
+      if (!g_strcmp0 (self->settings_version, "1"))
         {
           if (!xmlStrcmp (node->name, (const xmlChar*) "send-geolocation-data"))
             {
               content = xmlNodeGetContent (node);
-              priv->send_geolocation_data = !xmlStrcmp (content, (const xmlChar*) "1");
+              self->send_geolocation_data = !xmlStrcmp (content, (const xmlChar*) "1");
             }
 
           if (!xmlStrcmp (node->name, (const xmlChar*) "show-in-search"))
             {
               content = xmlNodeGetContent (node);
-              priv->show_in_search = !xmlStrcmp (content, (const xmlChar*) "1");
+              self->show_in_search = !xmlStrcmp (content, (const xmlChar*) "1");
             }
         }
 
@@ -394,7 +382,6 @@ _load_mainview_options_xml (FrogrConfig *self,
                             xmlDocPtr     xml,
                             xmlNodePtr    rootnode)
 {
-  FrogrConfigPrivate *priv = NULL;
   xmlNodePtr node;
   xmlChar *content = NULL;
 
@@ -402,8 +389,6 @@ _load_mainview_options_xml (FrogrConfig *self,
   g_return_if_fail (xml      != NULL);
   g_return_if_fail (rootnode != NULL);
 
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-
   /* Traverse child nodes and extract relevant information. */
   for (node = rootnode->children; node != NULL; node = node->next)
     {
@@ -416,26 +401,26 @@ _load_mainview_options_xml (FrogrConfig *self,
       if (!xmlStrcmp (node->name, (const xmlChar*) "enable-tooltips"))
         {
           content = xmlNodeGetContent (node);
-          priv->mainview_enable_tooltips = !xmlStrcmp (content, (const xmlChar*) "1");
+          self->mainview_enable_tooltips = !xmlStrcmp (content, (const xmlChar*) "1");
         }
 
       if (!xmlStrcmp (node->name, (const xmlChar*) "sorting-criteria"))
         {
           content = xmlNodeGetContent (node);
           if (!xmlStrcmp (content, (const xmlChar*) "1"))
-            priv->mainview_sorting_criteria = SORT_BY_TITLE;
+            self->mainview_sorting_criteria = SORT_BY_TITLE;
           else if (!xmlStrcmp (content, (const xmlChar*) "2"))
-            priv->mainview_sorting_criteria = SORT_BY_DATE;
+            self->mainview_sorting_criteria = SORT_BY_DATE;
           else if (!xmlStrcmp (content, (const xmlChar*) "3"))
-            priv->mainview_sorting_criteria = SORT_BY_SIZE;
+            self->mainview_sorting_criteria = SORT_BY_SIZE;
           else
-            priv->mainview_sorting_criteria = SORT_AS_LOADED;
+            self->mainview_sorting_criteria = SORT_AS_LOADED;
         }
 
       if (!xmlStrcmp (node->name, (const xmlChar*) "sorting-reversed"))
         {
           content = xmlNodeGetContent (node);
-          priv->mainview_sorting_reversed = !xmlStrcmp (content, (const xmlChar*) "1");
+          self->mainview_sorting_reversed = !xmlStrcmp (content, (const xmlChar*) "1");
         }
 
       if (content)
@@ -448,7 +433,6 @@ _load_proxy_data_xml (FrogrConfig *self,
                       xmlDocPtr     xml,
                       xmlNodePtr    rootnode)
 {
-  FrogrConfigPrivate *priv = NULL;
   xmlNodePtr node;
   xmlChar *content = NULL;
 
@@ -456,8 +440,6 @@ _load_proxy_data_xml (FrogrConfig *self,
   g_return_if_fail (xml      != NULL);
   g_return_if_fail (rootnode != NULL);
 
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-
   /* Traverse child nodes and extract relevant information. */
   for (node = rootnode->children; node != NULL; node = node->next)
     {
@@ -470,43 +452,43 @@ _load_proxy_data_xml (FrogrConfig *self,
       if (!xmlStrcmp (node->name, (const xmlChar*) "use-proxy"))
         {
           content = xmlNodeGetContent (node);
-          priv->use_proxy = !xmlStrcmp (content, (const xmlChar*) "1");
+          self->use_proxy = !xmlStrcmp (content, (const xmlChar*) "1");
         }
 
       if (!xmlStrcmp (node->name, (const xmlChar*) "proxy-host"))
         {
           content = xmlNodeGetContent (node);
-          g_free (priv->proxy_host);
-          priv->proxy_host = g_strdup ((gchar *) content);
-          if (priv->proxy_host)
-            g_strstrip (priv->proxy_host);
+          g_free (self->proxy_host);
+          self->proxy_host = g_strdup ((gchar *) content);
+          if (self->proxy_host)
+            g_strstrip (self->proxy_host);
         }
 
       if (!xmlStrcmp (node->name, (const xmlChar*) "proxy-port"))
         {
           content = xmlNodeGetContent (node);
-          g_free (priv->proxy_port);
-          priv->proxy_port = g_strdup ((gchar *) content);
-          if (priv->proxy_port)
-            g_strstrip (priv->proxy_port);
+          g_free (self->proxy_port);
+          self->proxy_port = g_strdup ((gchar *) content);
+          if (self->proxy_port)
+            g_strstrip (self->proxy_port);
         }
 
       if (!xmlStrcmp (node->name, (const xmlChar*) "proxy-username"))
         {
           content = xmlNodeGetContent (node);
-          g_free (priv->proxy_username);
-          priv->proxy_username = g_strdup ((gchar *) content);
-          if (priv->proxy_username)
-            g_strstrip (priv->proxy_username);
+          g_free (self->proxy_username);
+          self->proxy_username = g_strdup ((gchar *) content);
+          if (self->proxy_username)
+            g_strstrip (self->proxy_username);
         }
 
       if (!xmlStrcmp (node->name, (const xmlChar*) "proxy-password"))
         {
           content = xmlNodeGetContent (node);
-          g_free (priv->proxy_password);
-          priv->proxy_password = g_strdup ((gchar *) content);
-          if (priv->proxy_password)
-            g_strstrip (priv->proxy_password);
+          g_free (self->proxy_password);
+          self->proxy_password = g_strdup ((gchar *) content);
+          if (self->proxy_password)
+            g_strstrip (self->proxy_password);
         }
 
       if (content)
@@ -517,22 +499,20 @@ _load_proxy_data_xml (FrogrConfig *self,
 static void
 _load_accounts (FrogrConfig *self)
 {
-  FrogrConfigPrivate *priv = NULL;
   gchar *xml_path = NULL;
   xmlNodePtr node = NULL;
   xmlDocPtr xml = NULL;
 
   g_return_if_fail (FROGR_IS_CONFIG (self));
 
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  xml_path = g_build_filename (priv->config_dir, ACCOUNTS_FILENAME, NULL);
+  xml_path = g_build_filename (self->config_dir, ACCOUNTS_FILENAME, NULL);
   if (g_file_test (xml_path, G_FILE_TEST_IS_REGULAR))
     xml = xmlParseFile (xml_path);
 
   if (xml)
     node = xmlDocGetRootElement (xml);
   else
-    DEBUG ("Could not load '%s/%s'", priv->config_dir, ACCOUNTS_FILENAME);
+    DEBUG ("Could not load '%s/%s'", self->config_dir, ACCOUNTS_FILENAME);
 
   if (node && node->name && !xmlStrcmp (node->name, (const xmlChar*) "accounts"))
     {
@@ -549,7 +529,7 @@ _load_accounts (FrogrConfig *self)
               else
                 {
                   g_warning ("Malformed account in '%s/%s', "
-                             "skipping it", priv->config_dir, ACCOUNTS_FILENAME);
+                             "skipping it", self->config_dir, ACCOUNTS_FILENAME);
 
                   xmlUnlinkNode (node);
                   xmlFreeNode (node);
@@ -564,11 +544,11 @@ _load_accounts (FrogrConfig *self)
   else if (node && node->name)
     {
       g_warning ("File '%s/%s' does not start with "
-                 "an <accounts> tag", priv->config_dir, ACCOUNTS_FILENAME);
+                 "an <accounts> tag", self->config_dir, ACCOUNTS_FILENAME);
     }
   else if (!node && xml)
     {
-      g_warning ("File '%s/%s' is empty", priv->config_dir, ACCOUNTS_FILENAME);
+      g_warning ("File '%s/%s' is empty", self->config_dir, ACCOUNTS_FILENAME);
     }
 
   if (xml)
@@ -669,7 +649,6 @@ _load_account_xml (FrogrAccount *faccount,
 static gboolean
 _save_settings (FrogrConfig *self)
 {
-  FrogrConfigPrivate *priv = NULL;
   xmlDocPtr xml = NULL;
   xmlNodePtr root = NULL;
   xmlNodePtr node = NULL;
@@ -678,8 +657,6 @@ _save_settings (FrogrConfig *self)
 
   g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
 
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-
   xml = xmlNewDoc ((const xmlChar*) "1.0");
   root = xmlNewNode (NULL, (const xmlChar*) "settings");
   xmlDocSetRootElement (xml, root);
@@ -689,46 +666,46 @@ _save_settings (FrogrConfig *self)
 
   /* Default visibility */
   node = xmlNewNode (NULL, (const xmlChar*) "default-visibility");
-  _xml_add_bool_child (node, "public", priv->public);
-  _xml_add_bool_child (node, "family", priv->family);
-  _xml_add_bool_child (node, "friend", priv->friend);
+  _xml_add_bool_child (node, "public", self->public);
+  _xml_add_bool_child (node, "family", self->family);
+  _xml_add_bool_child (node, "friend", self->friend);
   xmlAddChild (root, node);
 
   /* Default license */
-  _xml_add_int_child (root, "default-license", priv->license);
+  _xml_add_int_child (root, "default-license", self->license);
 
   /* Default content type and safety level */
-  _xml_add_int_child (root, "default-content-type", priv->content_type);
-  _xml_add_int_child (root, "default-safety-level", priv->safety_level);
+  _xml_add_int_child (root, "default-content-type", self->content_type);
+  _xml_add_int_child (root, "default-safety-level", self->safety_level);
 
   /* Other defaults */
-  _xml_add_bool_child (root, "default-send-geolocation-data", priv->send_geolocation_data);
-  _xml_add_bool_child (root, "default-show-in-search", priv->show_in_search);
-  _xml_add_bool_child (root, "default-replace-date-posted", priv->replace_date_posted);
+  _xml_add_bool_child (root, "default-send-geolocation-data", self->send_geolocation_data);
+  _xml_add_bool_child (root, "default-show-in-search", self->show_in_search);
+  _xml_add_bool_child (root, "default-replace-date-posted", self->replace_date_posted);
 
   /* Other stuff */
-  _xml_add_bool_child (root, "tags-autocompletion", priv->tags_autocompletion);
-  _xml_add_bool_child (root, "keep-file-extensions", priv->keep_file_extensions);
-  _xml_add_bool_child (root, "import-tags-from-metadata", priv->import_tags_from_metadata);
-  _xml_add_bool_child (root, "use-dark-theme", priv->use_dark_theme);
+  _xml_add_bool_child (root, "tags-autocompletion", self->tags_autocompletion);
+  _xml_add_bool_child (root, "keep-file-extensions", self->keep_file_extensions);
+  _xml_add_bool_child (root, "import-tags-from-metadata", self->import_tags_from_metadata);
+  _xml_add_bool_child (root, "use-dark-theme", self->use_dark_theme);
 
   /* Use proxy */
   node = xmlNewNode (NULL, (const xmlChar*) "http-proxy");
-  _xml_add_bool_child (node, "use-proxy", priv->use_proxy);
-  _xml_add_string_child (node, "proxy-host", priv->proxy_host);
-  _xml_add_string_child (node, "proxy-port", priv->proxy_port);
-  _xml_add_string_child (node, "proxy-username", priv->proxy_username);
-  _xml_add_string_child (node, "proxy-password", priv->proxy_password);
+  _xml_add_bool_child (node, "use-proxy", self->use_proxy);
+  _xml_add_string_child (node, "proxy-host", self->proxy_host);
+  _xml_add_string_child (node, "proxy-port", self->proxy_port);
+  _xml_add_string_child (node, "proxy-username", self->proxy_username);
+  _xml_add_string_child (node, "proxy-password", self->proxy_password);
   xmlAddChild (root, node);
 
   /* Options from the 'View' menu */
   node = xmlNewNode (NULL, (const xmlChar*) "mainview-options");
-  _xml_add_bool_child (node, "enable-tooltips", priv->mainview_enable_tooltips);
-  _xml_add_int_child (node, "sorting-criteria", priv->mainview_sorting_criteria);
-  _xml_add_bool_child (node, "sorting-reversed", priv->mainview_sorting_reversed);
+  _xml_add_bool_child (node, "enable-tooltips", self->mainview_enable_tooltips);
+  _xml_add_int_child (node, "sorting-criteria", self->mainview_sorting_criteria);
+  _xml_add_bool_child (node, "sorting-reversed", self->mainview_sorting_reversed);
   xmlAddChild (root, node);
 
-  xml_path = g_build_filename (priv->config_dir, SETTINGS_FILENAME, NULL);
+  xml_path = g_build_filename (self->config_dir, SETTINGS_FILENAME, NULL);
 
   if (xmlSaveFormatFileEnc (xml_path, xml, "UTF-8", 1) == -1) {
     g_critical ("Unable to open '%s' for saving", xml_path);
@@ -745,7 +722,6 @@ _save_settings (FrogrConfig *self)
 static gboolean
 _save_accounts (FrogrConfig *self)
 {
-  FrogrConfigPrivate *priv = NULL;
   FrogrAccount *account = NULL;
   GSList *item = NULL;
   xmlDocPtr xml = NULL;
@@ -755,20 +731,18 @@ _save_accounts (FrogrConfig *self)
 
   g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
 
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-
   xml = xmlNewDoc ((const xmlChar*) "1.0");
   root = xmlNewNode (NULL, (const xmlChar*) "accounts");
   xmlDocSetRootElement (xml, root);
 
   /* Handle accounts */
-  for (item = priv->accounts; item; item = g_slist_next (item))
+  for (item = self->accounts; item; item = g_slist_next (item))
     {
       account = FROGR_ACCOUNT (item->data);
       _save_account_xml (account, root);
     }
 
-  xml_path = g_build_filename (priv->config_dir, ACCOUNTS_FILENAME, NULL);
+  xml_path = g_build_filename (self->config_dir, ACCOUNTS_FILENAME, NULL);
 
   if (xmlSaveFormatFileEnc (xml_path, xml, "UTF-8", 1) == -1) {
     g_critical ("Unable to open '%s' for saving", xml_path);
@@ -897,13 +871,13 @@ frogr_config_save_settings (FrogrConfig *self)
 static void
 _dispose (GObject *object)
 {
-  FrogrConfigPrivate *priv = FROGR_CONFIG_GET_PRIVATE (object);
+  FrogrConfig *config = FROGR_CONFIG (object);
 
-  if (priv->accounts)
+  if (config->accounts)
     {
-      g_slist_foreach (priv->accounts, (GFunc)g_object_unref, NULL);
-      g_slist_free (priv->accounts);
-      priv->accounts = NULL;
+      g_slist_foreach (config->accounts, (GFunc)g_object_unref, NULL);
+      g_slist_free (config->accounts);
+      config->accounts = NULL;
     }
 
   /* Call superclass */
@@ -913,14 +887,14 @@ _dispose (GObject *object)
 static void
 _finalize (GObject *object)
 {
-  FrogrConfigPrivate *priv = FROGR_CONFIG_GET_PRIVATE (object);
+  FrogrConfig *config = FROGR_CONFIG (object);
 
-  g_free (priv->config_dir);
-  g_free (priv->proxy_host);
-  g_free (priv->proxy_port);
-  g_free (priv->proxy_username);
-  g_free (priv->proxy_password);
-  g_free (priv->settings_version);
+  g_free (config->config_dir);
+  g_free (config->proxy_host);
+  g_free (config->proxy_port);
+  g_free (config->proxy_username);
+  g_free (config->proxy_password);
+  g_free (config->settings_version);
 
   /* Call superclass */
   G_OBJECT_CLASS (frogr_config_parent_class)->finalize (object);
@@ -952,8 +926,6 @@ frogr_config_class_init (FrogrConfigClass *klass)
 {
   GObjectClass *obj_class = G_OBJECT_CLASS (klass);
 
-  g_type_class_add_private (klass, sizeof (FrogrConfigPrivate));
-
   obj_class->constructor = _constructor;
   obj_class->dispose = _dispose;
   obj_class->finalize = _finalize;
@@ -962,44 +934,41 @@ frogr_config_class_init (FrogrConfigClass *klass)
 static void
 frogr_config_init (FrogrConfig *self)
 {
-  FrogrConfigPrivate *priv = NULL;
   gchar *config_dir = NULL;
 
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-
-  priv->config_dir = NULL;
-  priv->active_account = NULL;
-  priv->accounts = NULL;
+  self->config_dir = NULL;
+  self->active_account = NULL;
+  self->accounts = NULL;
 
   /* Default values (if no config file found) */
-  priv->public = FALSE;
-  priv->family = FALSE;
-  priv->friend = FALSE;
-  priv->send_geolocation_data = FALSE;
-  priv->show_in_search = TRUE;
-  priv->license = FSP_LICENSE_NONE;
-  priv->safety_level = FSP_SAFETY_LEVEL_SAFE;
-  priv->content_type = FSP_CONTENT_TYPE_PHOTO;
-  priv->tags_autocompletion = TRUE;
-  priv->keep_file_extensions = FALSE;
-  priv->import_tags_from_metadata = TRUE;
-  priv->mainview_sorting_criteria = SORT_AS_LOADED;
-  priv->mainview_sorting_reversed = FALSE;
-  priv->mainview_enable_tooltips = TRUE;
-  priv->use_dark_theme = TRUE;
-  priv->replace_date_posted = FALSE;
-  priv->use_proxy = FALSE;
-  priv->proxy_host = NULL;
-  priv->proxy_port = NULL;
-  priv->proxy_username = NULL;
-  priv->proxy_password = NULL;
-  priv->settings_version = NULL;
+  self->public = FALSE;
+  self->family = FALSE;
+  self->friend = FALSE;
+  self->send_geolocation_data = FALSE;
+  self->show_in_search = TRUE;
+  self->license = FSP_LICENSE_NONE;
+  self->safety_level = FSP_SAFETY_LEVEL_SAFE;
+  self->content_type = FSP_CONTENT_TYPE_PHOTO;
+  self->tags_autocompletion = TRUE;
+  self->keep_file_extensions = FALSE;
+  self->import_tags_from_metadata = TRUE;
+  self->mainview_sorting_criteria = SORT_AS_LOADED;
+  self->mainview_sorting_reversed = FALSE;
+  self->mainview_enable_tooltips = TRUE;
+  self->use_dark_theme = TRUE;
+  self->replace_date_posted = FALSE;
+  self->use_proxy = FALSE;
+  self->proxy_host = NULL;
+  self->proxy_port = NULL;
+  self->proxy_username = NULL;
+  self->proxy_password = NULL;
+  self->settings_version = NULL;
 
   /* Ensure that we have the config directory in place. */
   config_dir = g_build_filename (g_get_user_config_dir (), APP_SHORTNAME, NULL);
   if (g_mkdir_with_parents (config_dir, 0777) == 0)
     {
-      priv->config_dir = g_strdup (config_dir);
+      self->config_dir = g_strdup (config_dir);
 
       /* Load data */
       _load_settings (self);
@@ -1007,13 +976,13 @@ frogr_config_init (FrogrConfig *self)
 
       /* Make sure at least one account is active, despite of not having
          the <active> node present, for backwards compatibility */
-      if (g_slist_length (priv->accounts) > 0 && !priv->active_account)
+      if (g_slist_length (self->accounts) > 0 && !self->active_account)
         {
           FrogrAccount *account = NULL;
-          account = FROGR_ACCOUNT (priv->accounts->data);
+          account = FROGR_ACCOUNT (self->accounts->data);
 
           frogr_account_set_is_active (account, TRUE);
-          priv->active_account = account;
+          self->active_account = account;
 
           _save_accounts (self);
         }
@@ -1041,15 +1010,12 @@ gboolean
 frogr_config_add_account (FrogrConfig  *self,
                           FrogrAccount *faccount)
 {
-  FrogrConfigPrivate *priv = NULL;
   FrogrAccount *found_account = NULL;
   const gchar *username = NULL;
 
   g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
   g_return_val_if_fail (FROGR_IS_ACCOUNT (faccount), FALSE);
 
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-
   /* Only add the account if not already in */
   username = frogr_account_get_username (faccount);
   found_account = _find_account_by_username (self, username);
@@ -1061,7 +1027,7 @@ frogr_config_add_account (FrogrConfig  *self,
       DEBUG ("Account %s already in the configuration system", username);
     }
 
-  priv->accounts = g_slist_append (priv->accounts, g_object_ref (faccount));
+  self->accounts = g_slist_append (self->accounts, g_object_ref (faccount));
 
   /* Set it as active if needed */
   if (frogr_account_is_active (faccount))
@@ -1074,33 +1040,27 @@ frogr_config_add_account (FrogrConfig  *self,
 GSList *
 frogr_config_get_accounts (FrogrConfig *self)
 {
-  FrogrConfigPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_CONFIG (self), NULL);
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  return priv->accounts;
+  return self->accounts;
 }
 
 gboolean
 frogr_config_set_active_account (FrogrConfig *self, const gchar *username)
 {
-  FrogrConfigPrivate *priv = NULL;
   FrogrAccount *current = NULL;
   GSList *item = NULL;
   gboolean result = FALSE;
 
   g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
 
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  for (item = priv->accounts; item; item = g_slist_next (item))
+  for (item = self->accounts; item; item = g_slist_next (item))
     {
       current = FROGR_ACCOUNT (item->data);
 
       if (!g_strcmp0 (username, frogr_account_get_username (current)))
         {
           frogr_account_set_is_active (current, TRUE);
-          priv->active_account = current;
+          self->active_account = current;
           result = TRUE;
         }
       else
@@ -1113,29 +1073,23 @@ frogr_config_set_active_account (FrogrConfig *self, const gchar *username)
 FrogrAccount *
 frogr_config_get_active_account (FrogrConfig *self)
 {
-  FrogrConfigPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_CONFIG (self), NULL);
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  return priv->active_account;
+  return self->active_account;
 }
 
 gboolean
 frogr_config_remove_account (FrogrConfig *self, const gchar *username)
 {
-  FrogrConfigPrivate *priv = NULL;
   FrogrAccount *found_account = NULL;
 
   g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
   g_return_val_if_fail (username != NULL, FALSE);
 
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
   found_account = _find_account_by_username (self, username);
 
   if (found_account)
     {
-      priv->accounts = g_slist_remove (priv->accounts, found_account);
+      self->accounts = g_slist_remove (self->accounts, found_account);
       g_object_unref (found_account);
 
       return TRUE;
@@ -1147,495 +1101,323 @@ frogr_config_remove_account (FrogrConfig *self, const gchar *username)
 void
 frogr_config_set_default_public (FrogrConfig *self, gboolean value)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_if_fail (FROGR_IS_CONFIG (self));
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  priv->public = value;
+  self->public = value;
 }
 
 gboolean
 frogr_config_get_default_public (FrogrConfig *self)
 {
-  FrogrConfigPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  return priv->public;
+  return self->public;
 }
 
 void
 frogr_config_set_default_family (FrogrConfig *self, gboolean value)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_if_fail (FROGR_IS_CONFIG (self));
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  priv->family = value;
+  self->family = value;
 }
 
 gboolean
 frogr_config_get_default_family (FrogrConfig *self)
 {
-  FrogrConfigPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  return priv->family;
+  return self->family;
 }
 
 void
 frogr_config_set_default_friend (FrogrConfig *self, gboolean value)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_if_fail (FROGR_IS_CONFIG (self));
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  priv->friend = value;
+  self->friend = value;
 }
 
 gboolean
 frogr_config_get_default_friend (FrogrConfig *self)
 {
-  FrogrConfigPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  return priv->friend;
+  return self->friend;
 }
 
 void
 frogr_config_set_default_license (FrogrConfig *self,
                                   FspLicense license)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_if_fail (FROGR_IS_CONFIG (self));
 
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-
   /* Check out of bounds values */
   if (license < FSP_LICENSE_NONE || license >= FSP_LICENSE_LAST)
-    priv->license = FSP_LICENSE_NONE;
+    self->license = FSP_LICENSE_NONE;
   else
-    priv->license = license;
+    self->license = license;
 }
 
 FspLicense
 frogr_config_get_default_license (FrogrConfig *self)
 {
-  FrogrConfigPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  return priv->license;
+  return self->license;
 }
 
 void
 frogr_config_set_default_safety_level (FrogrConfig *self,
                                        FspSafetyLevel safety_level)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_if_fail (FROGR_IS_CONFIG (self));
 
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-
   /* Check out of bounds values */
   if (safety_level <= FSP_SAFETY_LEVEL_NONE || safety_level >= FSP_SAFETY_LEVEL_LAST)
-    priv->safety_level = FSP_SAFETY_LEVEL_SAFE;
+    self->safety_level = FSP_SAFETY_LEVEL_SAFE;
   else
-    priv->safety_level = safety_level;
+    self->safety_level = safety_level;
 }
 
 FspSafetyLevel
 frogr_config_get_default_safety_level (FrogrConfig *self)
 {
-  FrogrConfigPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  return priv->safety_level;
+  return self->safety_level;
 }
 
 void
 frogr_config_set_default_content_type (FrogrConfig *self,
                                        FspContentType content_type)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_if_fail (FROGR_IS_CONFIG (self));
 
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-
   /* Check out of bounds values */
   if (content_type <= FSP_CONTENT_TYPE_NONE || content_type >= FSP_CONTENT_TYPE_LAST)
-    priv->content_type = FSP_CONTENT_TYPE_PHOTO;
+    self->content_type = FSP_CONTENT_TYPE_PHOTO;
   else
-    priv->content_type = content_type;
+    self->content_type = content_type;
 }
 
 FspContentType
 frogr_config_get_default_content_type (FrogrConfig *self)
 {
-  FrogrConfigPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  return priv->content_type;
+  return self->content_type;
 }
 
 void
 frogr_config_set_default_show_in_search (FrogrConfig *self, gboolean value)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_if_fail (FROGR_IS_CONFIG (self));
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  priv->show_in_search = value;
+  self->show_in_search = value;
 }
 
 gboolean
 frogr_config_get_default_show_in_search (FrogrConfig *self)
 {
-  FrogrConfigPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  return priv->show_in_search;
+  return self->show_in_search;
 }
 
 void
 frogr_config_set_default_send_geolocation_data (FrogrConfig *self, gboolean value)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_if_fail (FROGR_IS_CONFIG (self));
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  priv->send_geolocation_data = value;
+  self->send_geolocation_data = value;
 }
 
 gboolean
 frogr_config_get_default_send_geolocation_data (FrogrConfig *self)
 {
-  FrogrConfigPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  return priv->send_geolocation_data;
+  return self->send_geolocation_data;
 }
 
 void
 frogr_config_set_default_replace_date_posted (FrogrConfig *self, gboolean value)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_if_fail (FROGR_IS_CONFIG (self));
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  priv->replace_date_posted = value;
+  self->replace_date_posted = value;
 }
 
 gboolean
 frogr_config_get_default_replace_date_posted (FrogrConfig *self)
 {
-  FrogrConfigPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  return priv->replace_date_posted;
+  return self->replace_date_posted;
 }
 
 void
 frogr_config_set_tags_autocompletion (FrogrConfig *self, gboolean value)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_if_fail (FROGR_IS_CONFIG (self));
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  priv->tags_autocompletion = value;
+  self->tags_autocompletion = value;
 }
 
 gboolean
 frogr_config_get_tags_autocompletion (FrogrConfig *self)
 {
-  FrogrConfigPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  return priv->tags_autocompletion;
+  return self->tags_autocompletion;
 }
 
 void
 frogr_config_set_keep_file_extensions (FrogrConfig *self, gboolean value)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_if_fail (FROGR_IS_CONFIG (self));
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  priv->keep_file_extensions = value;
+  self->keep_file_extensions = value;
 }
 
 gboolean
 frogr_config_get_keep_file_extensions (FrogrConfig *self)
 {
-  FrogrConfigPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  return priv->keep_file_extensions;
+  return self->keep_file_extensions;
 }
 
 void
 frogr_config_set_import_tags_from_metadata (FrogrConfig *self, gboolean value)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_if_fail (FROGR_IS_CONFIG (self));
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  priv->import_tags_from_metadata = value;
+  self->import_tags_from_metadata = value;
 }
 
 gboolean
 frogr_config_get_import_tags_from_metadata (FrogrConfig *self)
 {
-  FrogrConfigPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  return priv->import_tags_from_metadata;
+  return self->import_tags_from_metadata;
 }
 
 void
 frogr_config_set_mainview_enable_tooltips (FrogrConfig *self, gboolean value)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_if_fail (FROGR_IS_CONFIG (self));
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  priv->mainview_enable_tooltips = value;
+  self->mainview_enable_tooltips = value;
 }
 
 gboolean
 frogr_config_get_mainview_enable_tooltips (FrogrConfig *self)
 {
-  FrogrConfigPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  return priv->mainview_enable_tooltips;
+  return self->mainview_enable_tooltips;
 }
 
 void
 frogr_config_set_use_dark_theme (FrogrConfig *self, gboolean value)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_if_fail (FROGR_IS_CONFIG (self));
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  priv->use_dark_theme = value;
+  self->use_dark_theme = value;
 }
 
 gboolean
 frogr_config_get_use_dark_theme (FrogrConfig *self)
 {
-  FrogrConfigPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  return priv->use_dark_theme;
+  return self->use_dark_theme;
 }
 
 void
 frogr_config_set_mainview_sorting_criteria (FrogrConfig *self,
                                             SortingCriteria criteria)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_if_fail (FROGR_IS_CONFIG (self));
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  priv->mainview_sorting_criteria = criteria;
+  self->mainview_sorting_criteria = criteria;
 }
 
 SortingCriteria
 frogr_config_get_mainview_sorting_criteria (FrogrConfig *self)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_CONFIG (self), SORT_AS_LOADED);
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  return priv->mainview_sorting_criteria;
+  return self->mainview_sorting_criteria;
 }
 
 void
 frogr_config_set_mainview_sorting_reversed (FrogrConfig *self, gboolean reversed)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_if_fail (FROGR_IS_CONFIG (self));
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  priv->mainview_sorting_reversed = reversed;
+  self->mainview_sorting_reversed = reversed;
 }
 
 gboolean
 frogr_config_get_mainview_sorting_reversed (FrogrConfig *self)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_CONFIG (self), SORT_AS_LOADED);
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  return priv->mainview_sorting_reversed;
+  return self->mainview_sorting_reversed;
 }
 
 void
 frogr_config_set_use_proxy (FrogrConfig *self, gboolean value)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_if_fail (FROGR_IS_CONFIG (self));
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  priv->use_proxy = value;
+  self->use_proxy = value;
 }
 
 gboolean
 frogr_config_get_use_proxy (FrogrConfig *self)
 {
-  FrogrConfigPrivate *priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  return priv->use_proxy;
+  return self->use_proxy;
 }
 
 void
 frogr_config_set_proxy_host (FrogrConfig *self, const gchar *host)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_if_fail (FROGR_IS_CONFIG (self));
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  g_free (priv->proxy_host);
-  priv->proxy_host = g_strdup (host);
+  g_free (self->proxy_host);
+  self->proxy_host = g_strdup (host);
 }
 
 const gchar *
 frogr_config_get_proxy_host (FrogrConfig *self)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  return priv->proxy_host;
+  return self->proxy_host;
 }
 
 void
 frogr_config_set_proxy_port (FrogrConfig *self, const gchar *port)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_if_fail (FROGR_IS_CONFIG (self));
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  g_free (priv->proxy_port);
-  priv->proxy_port = g_strdup (port);
+  g_free (self->proxy_port);
+  self->proxy_port = g_strdup (port);
 }
 
 const gchar *
 frogr_config_get_proxy_port (FrogrConfig *self)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  return priv->proxy_port;
+  return self->proxy_port;
 }
 
 void
 frogr_config_set_proxy_username (FrogrConfig *self, const gchar *username)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_if_fail (FROGR_IS_CONFIG (self));
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  g_free (priv->proxy_username);
-  priv->proxy_username = g_strdup (username);
+  g_free (self->proxy_username);
+  self->proxy_username = g_strdup (username);
 }
 
 const gchar *
 frogr_config_get_proxy_username (FrogrConfig *self)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  return priv->proxy_username;
+  return self->proxy_username;
 }
 
 void
 frogr_config_set_proxy_password (FrogrConfig *self, const gchar *password)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_if_fail (FROGR_IS_CONFIG (self));
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  g_free (priv->proxy_password);
-  priv->proxy_password = g_strdup (password);
+  g_free (self->proxy_password);
+  self->proxy_password = g_strdup (password);
 }
 
 const gchar *
 frogr_config_get_proxy_password (FrogrConfig *self)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  return priv->proxy_password;
+  return self->proxy_password;
 }
 
 const gchar *
 frogr_config_get_settings_version (FrogrConfig *self)
 {
-  FrogrConfigPrivate * priv = NULL;
-
   g_return_val_if_fail (FROGR_IS_CONFIG (self), FALSE);
-
-  priv = FROGR_CONFIG_GET_PRIVATE (self);
-  return priv->settings_version;
+  return self->settings_version;
 }
diff --git a/src/frogr-config.h b/src/frogr-config.h
index 759c1ec..3036a3e 100644
--- a/src/frogr-config.h
+++ b/src/frogr-config.h
@@ -33,33 +33,13 @@
 
 G_BEGIN_DECLS
 
-#define FROGR_TYPE_CONFIG            (frogr_config_get_type())
-#define FROGR_IS_CONFIG(obj)         (G_TYPE_CHECK_INSTANCE_TYPE(obj, FROGR_TYPE_CONFIG))
-#define FROGR_IS_CONFIG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE(klass,  FROGR_TYPE_CONFIG))
-#define FROGR_CONFIG(obj)            (G_TYPE_CHECK_INSTANCE_CAST(obj, FROGR_TYPE_CONFIG, FrogrConfig))
-#define FROGR_CONFIG_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST(klass,  FROGR_TYPE_CONFIG, FrogrConfigClass))
-#define FROGR_CONFIG_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS(obj,  FROGR_TYPE_CONFIG, FrogrConfigClass))
+#define FROGR_TYPE_CONFIG (frogr_config_get_type())
+
+G_DECLARE_FINAL_TYPE (FrogrConfig, frogr_config, FROGR, CONFIG, GObject)
 
 /* Increase this when changing the xml schema for storing settings */
 #define SETTINGS_CURRENT_VERSION "2"
 
-typedef struct _FrogrConfig        FrogrConfig;
-typedef struct _FrogrConfigClass   FrogrConfigClass;
-
-struct _FrogrConfig
-{
-  GObject parent_instance;
-};
-
-
-struct _FrogrConfigClass
-{
-  GObjectClass parent_class;
-};
-
-
-GType frogr_config_get_type (void) G_GNUC_CONST;
-
 typedef enum {
   SORT_AS_LOADED,
   SORT_BY_TITLE,
diff --git a/src/frogr-controller.c b/src/frogr-controller.c
index 6dc4096..2604eac 100644
--- a/src/frogr-controller.c
+++ b/src/frogr-controller.c
@@ -50,18 +50,11 @@
 
 #define MAX_ATTEMPTS 5
 
-#define FROGR_CONTROLLER_GET_PRIVATE(object)                    \
-  (G_TYPE_INSTANCE_GET_PRIVATE ((object),                       \
-                                FROGR_TYPE_CONTROLLER,          \
-                                FrogrControllerPrivate))
 
-G_DEFINE_TYPE (FrogrController, frogr_controller, G_TYPE_OBJECT)
-
-/* Private data */
-
-typedef struct _FrogrControllerPrivate FrogrControllerPrivate;
-struct _FrogrControllerPrivate
+struct _FrogrController
 {
+  GObject parent;
+
   FrogrControllerState state;
 
   FrogrMainView *mainview;
@@ -97,6 +90,9 @@ struct _FrogrControllerPrivate
   guint show_add_to_group_dialog_source_id;
 };
 
+G_DEFINE_TYPE (FrogrController, frogr_controller, G_TYPE_OBJECT)
+
+
 /* Signals */
 enum {
   STATE_CHANGED,
@@ -339,7 +335,6 @@ static void
 _g_application_startup_cb (GApplication *app, gpointer data)
 {
   FrogrController *self = FROGR_CONTROLLER (data);
-  FrogrControllerPrivate *priv = FROGR_CONTROLLER_GET_PRIVATE (self);
   FrogrModel *model = NULL;
   FrogrAccount *account = NULL;
   gboolean use_dark_theme;
@@ -347,11 +342,11 @@ _g_application_startup_cb (GApplication *app, gpointer data)
   DEBUG ("%s", "Application started!\n");
 
   /* Create UI window */
-  priv->mainview = frogr_main_view_new (GTK_APPLICATION (app));
-  g_object_add_weak_pointer (G_OBJECT (priv->mainview),
-                             (gpointer) & priv->mainview);
+  self->mainview = frogr_main_view_new (GTK_APPLICATION (app));
+  g_object_add_weak_pointer (G_OBJECT (self->mainview),
+                             (gpointer) & self->mainview);
   /* Connect to signals */
-  model = frogr_main_view_get_model (priv->mainview);
+  model = frogr_main_view_get_model (self->mainview);
   g_signal_connect (G_OBJECT (model), "model-deserialized",
                     G_CALLBACK (_on_model_deserialized),
                     self);
@@ -360,21 +355,21 @@ _g_application_startup_cb (GApplication *app, gpointer data)
   _set_state (self, FROGR_STATE_IDLE);
 
   /* Select the dark theme if needed */
-  use_dark_theme = frogr_config_get_use_dark_theme (priv->config);
+  use_dark_theme = frogr_config_get_use_dark_theme (self->config);
   frogr_controller_set_use_dark_theme (self, use_dark_theme);
 
   /* Select the right account */
-  account = frogr_config_get_active_account (priv->config);
+  account = frogr_config_get_active_account (self->config);
   if (account)
     _set_active_account (self, account);
 
   /* Set HTTP proxy if needed */
-  if (frogr_config_get_use_proxy (priv->config))
+  if (frogr_config_get_use_proxy (self->config))
     {
-      const gchar *host = frogr_config_get_proxy_host (priv->config);
-      const gchar *port = frogr_config_get_proxy_port (priv->config);
-      const gchar *username = frogr_config_get_proxy_username (priv->config);
-      const gchar *password = frogr_config_get_proxy_password (priv->config);
+      const gchar *host = frogr_config_get_proxy_host (self->config);
+      const gchar *port = frogr_config_get_proxy_port (self->config);
+      const gchar *username = frogr_config_get_proxy_username (self->config);
+      const gchar *password = frogr_config_get_proxy_password (self->config);
       frogr_controller_set_proxy (self, FALSE, host, port, username, password);
     }
 }
@@ -382,19 +377,19 @@ _g_application_startup_cb (GApplication *app, gpointer data)
 static void
 _g_application_activate_cb (GApplication *app, gpointer data)
 {
-  FrogrControllerPrivate *priv = FROGR_CONTROLLER_GET_PRIVATE (data);
+  FrogrController *self = FROGR_CONTROLLER (data);
 
   DEBUG ("%s", "Application activated!\n");
 
   /* Show the UI */
-  gtk_widget_show (GTK_WIDGET(priv->mainview));
-  gtk_window_present (GTK_WINDOW (priv->mainview));
+  gtk_widget_show (GTK_WIDGET(self->mainview));
+  gtk_window_present (GTK_WINDOW (self->mainview));
 }
 
 static void
 _g_application_open_files_cb (GApplication *app, GFile **files, gint n_files, gchar *hint, gpointer data)
 {
-  FrogrControllerPrivate *priv = FROGR_CONTROLLER_GET_PRIVATE (data);
+  FrogrController *self = FROGR_CONTROLLER (data);
   GFileInfo *file_info = NULL;
   gboolean is_project_file = FALSE;
 
@@ -447,33 +442,32 @@ _g_application_open_files_cb (GApplication *app, GFile **files, gint n_files, gc
     }
 
   /* Show the UI */
-  gtk_widget_show (GTK_WIDGET(priv->mainview));
-  gtk_window_present (GTK_WINDOW (priv->mainview));
+  gtk_widget_show (GTK_WIDGET(self->mainview));
+  gtk_window_present (GTK_WINDOW (self->mainview));
 }
 
 static void
 _g_application_shutdown_cb (GApplication *app, gpointer data)
 {
-  FrogrControllerPrivate *priv = FROGR_CONTROLLER_GET_PRIVATE (data);
+  FrogrController *self = FROGR_CONTROLLER (data);
 
   DEBUG ("%s", "Shutting down application...");
 
-  if (priv->app_running)
+  if (self->app_running)
     {
       while (gtk_events_pending ())
         gtk_main_iteration ();
 
-      gtk_widget_destroy (GTK_WIDGET (priv->mainview));
-      priv->app_running = FALSE;
+      gtk_widget_destroy (GTK_WIDGET (self->mainview));
+      self->app_running = FALSE;
 
-      frogr_config_save_all (priv->config);
+      frogr_config_save_all (self->config);
     }
 }
 
 static void
 _set_active_account (FrogrController *self, FrogrAccount *account)
 {
-  FrogrControllerPrivate *priv = NULL;
   FrogrAccount *new_account = NULL;
   gboolean accounts_changed = FALSE;
   const gchar *token = NULL;
@@ -482,47 +476,45 @@ _set_active_account (FrogrController *self, FrogrAccount *account)
 
   g_return_if_fail(FROGR_IS_CONTROLLER (self));
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-
   new_account = FROGR_IS_ACCOUNT (account) ? g_object_ref (account) : NULL;
   if (new_account)
     {
       const gchar *new_username = NULL;
 
       new_username = frogr_account_get_username (new_account);
-      if (!frogr_config_set_active_account (priv->config, new_username))
+      if (!frogr_config_set_active_account (self->config, new_username))
         {
           /* Fallback to manually creating a new account */
           frogr_account_set_is_active (new_account, TRUE);
-          accounts_changed = frogr_config_add_account (priv->config, new_account);
+          accounts_changed = frogr_config_add_account (self->config, new_account);
         }
 
       /* Get the token for setting it later on */
       token = frogr_account_get_token (new_account);
       token_secret = frogr_account_get_token_secret (new_account);
     }
-  else if (FROGR_IS_ACCOUNT (priv->account))
+  else if (FROGR_IS_ACCOUNT (self->account))
     {
       /* If NULL is passed it means 'delete current account' */
-      const gchar *username = frogr_account_get_username (priv->account);
-      accounts_changed = frogr_config_remove_account (priv->config, username);
+      const gchar *username = frogr_account_get_username (self->account);
+      accounts_changed = frogr_config_remove_account (self->config, username);
     }
 
   /* Update internal pointer in the controller */
-  if (priv->account)
-    g_object_unref (priv->account);
-  priv->account = new_account;
+  if (self->account)
+    g_object_unref (self->account);
+  self->account = new_account;
 
   /* Update token in the session */
-  fsp_session_set_token (priv->session, token);
-  fsp_session_set_token_secret (priv->session, token_secret);
+  fsp_session_set_token (self->session, token);
+  fsp_session_set_token_secret (self->session, token_secret);
 
   /* Fetch needed info for this account or update tokens stored */
   account_version = new_account ? frogr_account_get_version (new_account) : NULL;
   if (account_version && g_strcmp0 (account_version, ACCOUNTS_CURRENT_VERSION))
     {
-      priv->fetching_token_replacement = TRUE;
-      fsp_session_exchange_token (priv->session, NULL, _exchange_token_cb, self);
+      self->fetching_token_replacement = TRUE;
+      fsp_session_exchange_token (self->session, NULL, _exchange_token_cb, self);
       gdk_threads_add_timeout (DEFAULT_TIMEOUT, (GSourceFunc) _show_progress_on_idle, GINT_TO_POINTER 
(FETCHING_TOKEN_REPLACEMENT));
 
       /* Make sure we show proper feedback if connection is too slow */
@@ -541,27 +533,22 @@ _set_active_account (FrogrController *self, FrogrAccount *account)
     }
 
   /* Save new state in configuration */
-  frogr_config_save_accounts (priv->config);
+  frogr_config_save_accounts (self->config);
 }
 
 void
 _set_state (FrogrController *self, FrogrControllerState state)
 {
-  FrogrControllerPrivate *priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-
-  priv->state = state;
+  self->state = state;
   g_signal_emit (self, signals[STATE_CHANGED], 0, state);
 }
 
 static GCancellable *
 _register_new_cancellable (FrogrController *self)
 {
-  FrogrControllerPrivate *priv = NULL;
   GCancellable *cancellable = NULL;
-
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
   cancellable = g_cancellable_new();
-  priv->cancellables = g_list_prepend (priv->cancellables, cancellable);
+  self->cancellables = g_list_prepend (self->cancellables, cancellable);
 
   return cancellable;
 }
@@ -569,22 +556,19 @@ _register_new_cancellable (FrogrController *self)
 static void
 _clear_cancellable (FrogrController *self, GCancellable *cancellable)
 {
-  FrogrControllerPrivate *priv = NULL;
   GList *item = NULL;
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  item = g_list_find (priv->cancellables, cancellable);
+  item = g_list_find (self->cancellables, cancellable);
   if (item)
     {
       g_object_unref (G_OBJECT (item->data));
-      priv->cancellables = g_list_delete_link (priv->cancellables, item);
+      self->cancellables = g_list_delete_link (self->cancellables, item);
     }
 }
 
 static void
 _handle_flicksoup_error (FrogrController *self, GError *error, gboolean notify_user)
 {
-  FrogrControllerPrivate *priv = FROGR_CONTROLLER_GET_PRIVATE (self);
   void (* error_function) (GtkWindow *, const gchar *) = NULL;
   gchar *msg = NULL;
   gchar *video_quota_msg = NULL;
@@ -619,7 +603,7 @@ _handle_flicksoup_error (FrogrController *self, GError *error, gboolean notify_u
       break;
 
     case FSP_ERROR_UPLOAD_QUOTA_VIDEO_EXCEEDED:
-      n_videos = frogr_account_get_current_videos (priv->account);
+      n_videos = frogr_account_get_current_videos (self->account);
       video_quota_msg = g_strdup_printf (ngettext ("Quota exceeded (limit: %d video per month)",
                                                    "Quota exceeded (limit: %d videos per month)", n_videos),
                                          n_videos);
@@ -695,7 +679,7 @@ _handle_flicksoup_error (FrogrController *self, GError *error, gboolean notify_u
     }
 
   if (notify_user && error_function)
-    error_function (GTK_WINDOW (priv->mainview), msg);
+    error_function (GTK_WINDOW (self->mainview), msg);
 
   DEBUG ("%s", msg);
   g_free (msg);
@@ -730,12 +714,8 @@ static void
 _data_fraction_sent_cb (FspSession *session, gdouble fraction, gpointer data)
 {
   FrogrController *self = NULL;
-  FrogrControllerPrivate *priv = NULL;
-
   self = FROGR_CONTROLLER(data);
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-
-  frogr_main_view_set_progress_status_fraction (priv->mainview, fraction);
+  frogr_main_view_set_progress_status_fraction (self->mainview, fraction);
 }
 
 static void
@@ -757,14 +737,12 @@ _get_auth_url_cb (GObject *obj, GAsyncResult *res, gpointer data)
   FspSession *session = NULL;
   CancellableOperationData *co_data = NULL;
   FrogrController *self = NULL;
-  FrogrControllerPrivate *priv = NULL;
   GError *error = NULL;
   gchar *auth_url = NULL;
 
   session = FSP_SESSION (obj);
   co_data = (CancellableOperationData*) data;
   self = co_data->controller;
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
 
   auth_url = fsp_session_get_auth_url_finish (session, res, &error);
   if (auth_url != NULL && error == NULL)
@@ -775,7 +753,7 @@ _get_auth_url_cb (GObject *obj, GAsyncResult *res, gpointer data)
       frogr_util_open_uri (url_with_permissions);
 
       /* Run the auth confirmation dialog */
-      frogr_auth_dialog_show (GTK_WINDOW (priv->mainview), CONFIRM_AUTHORIZATION);
+      frogr_auth_dialog_show (GTK_WINDOW (self->mainview), CONFIRM_AUTHORIZATION);
 
       DEBUG ("Auth URL: %s", url_with_permissions);
 
@@ -790,12 +768,12 @@ _get_auth_url_cb (GObject *obj, GAsyncResult *res, gpointer data)
       g_error_free (error);
     }
 
-  frogr_main_view_hide_progress (priv->mainview);
+  frogr_main_view_hide_progress (self->mainview);
 
   _clear_cancellable (self, co_data->cancellable);
   g_slice_free (CancellableOperationData, co_data);
 
-  priv->fetching_auth_url = FALSE;
+  self->fetching_auth_url = FALSE;
 }
 
 static void
@@ -804,14 +782,12 @@ _complete_auth_cb (GObject *object, GAsyncResult *result, gpointer data)
   FspSession *session = NULL;
   CancellableOperationData *co_data = NULL;
   FrogrController *controller = NULL;
-  FrogrControllerPrivate *priv = NULL;
   FspDataAuthToken *auth_token = NULL;
   GError *error = NULL;
 
   session = FSP_SESSION (object);
   co_data = (CancellableOperationData*) data;
   controller = co_data->controller;
-  priv = FROGR_CONTROLLER_GET_PRIVATE (controller);
 
   auth_token = fsp_session_complete_auth_finish (session, result, &error);
   if (auth_token)
@@ -845,12 +821,12 @@ _complete_auth_cb (GObject *object, GAsyncResult *result, gpointer data)
       g_error_free (error);
     }
 
-  frogr_main_view_hide_progress (priv->mainview);
+  frogr_main_view_hide_progress (controller->mainview);
 
   _clear_cancellable (controller, co_data->cancellable);
   g_slice_free (CancellableOperationData, co_data);
 
-  priv->fetching_auth_token = FALSE;
+  controller->fetching_auth_token = FALSE;
 }
 
 static void
@@ -858,12 +834,10 @@ _exchange_token_cb (GObject *object, GAsyncResult *result, gpointer data)
 {
   FspSession *session = NULL;
   FrogrController *controller = NULL;
-  FrogrControllerPrivate *priv = NULL;
   GError *error = NULL;
 
   session = FSP_SESSION (object);
   controller = FROGR_CONTROLLER (data);
-  priv = FROGR_CONTROLLER_GET_PRIVATE (controller);
 
   fsp_session_exchange_token_finish (session, result, &error);
   if (error == NULL)
@@ -873,17 +847,17 @@ _exchange_token_cb (GObject *object, GAsyncResult *result, gpointer data)
 
       /* If everything went fine, get the token and secret from the
          session and update the current user account */
-      token = fsp_session_get_token (priv->session);
-      frogr_account_set_token (priv->account, token);
+      token = fsp_session_get_token (controller->session);
+      frogr_account_set_token (controller->account, token);
 
-      token_secret = fsp_session_get_token_secret (priv->session);
-      frogr_account_set_token_secret (priv->account, token_secret);
+      token_secret = fsp_session_get_token_secret (controller->session);
+      frogr_account_set_token_secret (controller->account, token_secret);
 
       /* Make sure we update the version for the account too */
-      frogr_account_set_version (priv->account, ACCOUNTS_CURRENT_VERSION);
+      frogr_account_set_version (controller->account, ACCOUNTS_CURRENT_VERSION);
 
       /* Finally, try to set the active account again */
-      _set_active_account (controller, priv->account);
+      _set_active_account (controller, controller->account);
     }
   else
     {
@@ -892,22 +866,21 @@ _exchange_token_cb (GObject *object, GAsyncResult *result, gpointer data)
       g_error_free (error);
     }
 
-  frogr_main_view_hide_progress (priv->mainview);
-  priv->fetching_token_replacement = FALSE;
+  frogr_main_view_hide_progress (controller->mainview);
+  controller->fetching_token_replacement = FALSE;
 }
 
 static gboolean
 _cancel_authorization_on_timeout (gpointer data)
 {
   FrogrController *self = FROGR_CONTROLLER (data);
-  FrogrControllerPrivate *priv = FROGR_CONTROLLER_GET_PRIVATE (self);
 
-  if (priv->fetching_auth_url || priv->fetching_auth_token || priv->fetching_token_replacement)
+  if (self->fetching_auth_url || self->fetching_auth_token || self->fetching_token_replacement)
     {
       frogr_controller_cancel_ongoing_requests (self);
-      frogr_main_view_hide_progress (priv->mainview);
+      frogr_main_view_hide_progress (self->mainview);
 
-      _show_auth_failed_dialog (GTK_WINDOW (priv->mainview), _("Authorization failed (timed out)"), FALSE);
+      _show_auth_failed_dialog (GTK_WINDOW (self->mainview), _("Authorization failed (timed out)"), FALSE);
     }
 
   return G_SOURCE_REMOVE;
@@ -935,19 +908,15 @@ _should_retry_operation (GError *error, gint attempts)
 static void
 _invalidate_extra_data (FrogrController *self)
 {
-  FrogrControllerPrivate *priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-
   /* Just reset the flags */
-  priv->photosets_fetched = FALSE;
-  priv->groups_fetched = FALSE;
-  priv->tags_fetched = FALSE;
+  self->photosets_fetched = FALSE;
+  self->groups_fetched = FALSE;
+  self->tags_fetched = FALSE;
 }
 
 static void
 _update_upload_progress (FrogrController *self, UploadPicturesData *up_data)
 {
-  FrogrControllerPrivate *priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-
   gchar *description = NULL;
   gchar *status_text = NULL;
 
@@ -969,8 +938,8 @@ _update_upload_progress (FrogrController *self, UploadPicturesData *up_data)
       status_text = g_strdup_printf ("%d / %d", up_data->index, up_data->n_pictures);
       g_free (title);
     }
-  frogr_main_view_set_progress_description(priv->mainview, description);
-  frogr_main_view_set_progress_status_text (priv->mainview, status_text);
+  frogr_main_view_set_progress_description(self->mainview, description);
+  frogr_main_view_set_progress_status_text (self->mainview, status_text);
 
   /* Free */
   g_free (description);
@@ -980,8 +949,6 @@ _update_upload_progress (FrogrController *self, UploadPicturesData *up_data)
 static void
 _upload_next_picture (FrogrController *self, UploadPicturesData *up_data)
 {
-  FrogrControllerPrivate *priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-
   /* Advance the list only if not in the first element */
   if (up_data->index > 0)
     up_data->current = g_slist_next(up_data->current);
@@ -1000,7 +967,7 @@ _upload_next_picture (FrogrController *self, UploadPicturesData *up_data)
   else
     {
       /* Hide progress bar dialog and finish */
-      frogr_main_view_hide_progress (priv->mainview);
+      frogr_main_view_hide_progress (self->mainview);
       _finish_upload_pictures_process (self, up_data);
     }
 }
@@ -1008,7 +975,6 @@ _upload_next_picture (FrogrController *self, UploadPicturesData *up_data)
 static void
 _upload_picture (FrogrController *self, FrogrPicture *picture, UploadPicturesData *up_data)
 {
-  FrogrControllerPrivate *priv = NULL;
   UploadOnePictureData *uop_data = NULL;
   FspVisibility public_visibility = FSP_VISIBILITY_NONE;
   FspVisibility family_visibility = FSP_VISIBILITY_NONE;
@@ -1032,7 +998,6 @@ _upload_picture (FrogrController *self, FrogrPicture *picture, UploadPicturesDat
   uop_data->is_cancelled = FALSE;
   uop_data->up_data = up_data;
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
   g_object_ref (picture);
 
   public_visibility = frogr_picture_is_public (picture) ? FSP_VISIBILITY_YES : FSP_VISIBILITY_NO;
@@ -1043,11 +1008,11 @@ _upload_picture (FrogrController *self, FrogrPicture *picture, UploadPicturesDat
   search_scope = frogr_picture_show_in_search (picture) ? FSP_SEARCH_SCOPE_PUBLIC : FSP_SEARCH_SCOPE_HIDDEN;
 
   /* Connect to this signal to report progress to the user */
-  g_signal_connect (G_OBJECT (priv->session), "data-fraction-sent",
+  g_signal_connect (G_OBJECT (self->session), "data-fraction-sent",
                     G_CALLBACK (_data_fraction_sent_cb),
                     self);
 
-  fsp_session_upload (priv->session,
+  fsp_session_upload (self->session,
                       frogr_picture_get_fileuri (picture),
                       frogr_picture_get_title (picture),
                       frogr_picture_get_description (picture),
@@ -1069,7 +1034,6 @@ _upload_picture_cb (GObject *object, GAsyncResult *res, gpointer data)
   UploadOnePictureData *uop_data = NULL;
   UploadPicturesData *up_data = NULL;
   FrogrController *controller = NULL;
-  FrogrControllerPrivate *priv = NULL;
   FrogrPicture *picture = NULL;
   GError *error = NULL;
   gchar *photo_id = NULL;
@@ -1087,8 +1051,7 @@ _upload_picture_cb (GObject *object, GAsyncResult *res, gpointer data)
     }
 
   /* Stop reporting to the user */
-  priv = FROGR_CONTROLLER_GET_PRIVATE (controller);
-  g_signal_handlers_disconnect_by_func (priv->session, _data_fraction_sent_cb, controller);
+  g_signal_handlers_disconnect_by_func (controller->session, _data_fraction_sent_cb, controller);
 
   up_data = uop_data->up_data;
   if (error && _should_retry_operation (error, up_data->upload_attempts))
@@ -1242,22 +1205,20 @@ _set_license_cb (GObject *object, GAsyncResult *res, gpointer data)
           uop_data->up_data->error = error;
         }
 
-      FROGR_CONTROLLER_GET_PRIVATE (controller)->setting_license = FALSE;
+      controller->setting_license = FALSE;
     }
 }
 
 static void
 _set_license_for_picture (FrogrController *self, UploadOnePictureData *uop_data)
 {
-  FrogrControllerPrivate *priv = NULL;
   FrogrPicture *picture = NULL;
   gchar *debug_msg = NULL;
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  priv->setting_license = TRUE;
+  self->setting_license = TRUE;
   picture = uop_data->picture;
 
-  fsp_session_set_license (priv->session,
+  fsp_session_set_license (self->session,
                            frogr_picture_get_id (picture),
                            frogr_picture_get_license (picture),
                            uop_data->cancellable,
@@ -1305,14 +1266,13 @@ _set_location_cb (GObject *object, GAsyncResult *res, gpointer data)
           uop_data->up_data->error = error;
         }
 
-      FROGR_CONTROLLER_GET_PRIVATE (controller)->setting_location = FALSE;
+      controller->setting_location = FALSE;
     }
 }
 
 static void
 _set_location_for_picture (FrogrController *self, UploadOnePictureData *uop_data)
 {
-  FrogrControllerPrivate *priv = NULL;
   FrogrPicture *picture = NULL;
   FrogrLocation *location = NULL;
   FspDataLocation *data_location = NULL;
@@ -1324,10 +1284,9 @@ _set_location_for_picture (FrogrController *self, UploadOnePictureData *uop_data
   data_location->latitude = frogr_location_get_latitude (location);
   data_location->longitude = frogr_location_get_longitude (location);
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  priv->setting_location = TRUE;
+  self->setting_location = TRUE;
 
-  fsp_session_set_location (priv->session,
+  fsp_session_set_location (self->session,
                             frogr_picture_get_id (picture),
                             data_location,
                             uop_data->cancellable,
@@ -1379,14 +1338,13 @@ _set_replace_date_posted_cb (GObject *object, GAsyncResult *res, gpointer data)
           uop_data->up_data->error = error;
         }
 
-      FROGR_CONTROLLER_GET_PRIVATE (controller)->setting_replace_date_posted = FALSE;
+      controller->setting_replace_date_posted = FALSE;
     }
 }
 
 static void
 _set_replace_date_posted_for_picture (FrogrController *self, UploadOnePictureData *uop_data)
 {
-  FrogrControllerPrivate *priv = NULL;
   FrogrPicture *picture = NULL;
   GDateTime *picture_date = NULL;
   GTimeVal picture_timeval;
@@ -1424,10 +1382,9 @@ _set_replace_date_posted_for_picture (FrogrController *self, UploadOnePictureDat
   if (!picture_date)
     return;
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  priv->setting_replace_date_posted = TRUE;
+  self->setting_replace_date_posted = TRUE;
 
-  fsp_session_set_date_posted (priv->session,
+  fsp_session_set_date_posted (self->session,
                                frogr_picture_get_id (picture),
                                picture_date,
                                uop_data->cancellable,
@@ -1445,14 +1402,12 @@ _set_replace_date_posted_for_picture (FrogrController *self, UploadOnePictureDat
 static gboolean
 _add_picture_to_photosets_or_create (FrogrController *self, UploadOnePictureData *uop_data)
 {
-  FrogrControllerPrivate *priv = NULL;
   FrogrPhotoSet *set = NULL;
 
   if (g_slist_length (uop_data->photosets) == 0)
     return FALSE;
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  priv->adding_to_set = TRUE;
+  self->adding_to_set = TRUE;
 
   uop_data->after_upload_attempts[AFTER_UPLOAD_OP_ADDING_TO_SET] = 0;
 
@@ -1468,17 +1423,15 @@ _add_picture_to_photosets_or_create (FrogrController *self, UploadOnePictureData
 static void
 _create_photoset_for_picture (FrogrController *self, UploadOnePictureData *uop_data)
 {
-  FrogrControllerPrivate *priv = NULL;
   FrogrPicture *picture = NULL;
   FrogrPhotoSet *set = NULL;
   gchar *debug_msg = NULL;
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
   picture = uop_data->picture;
   set = FROGR_PHOTOSET (uop_data->photosets->data);
 
   /* Set with ID: Create set along with this picture */
-  fsp_session_create_photoset (priv->session,
+  fsp_session_create_photoset (self->session,
                                frogr_photoset_get_title (set),
                                frogr_photoset_get_description (set),
                                frogr_picture_get_id (picture),
@@ -1548,24 +1501,22 @@ _create_photoset_cb (GObject *object, GAsyncResult *res, gpointer data)
         }
 
       if (!keep_going)
-        FROGR_CONTROLLER_GET_PRIVATE (controller)->adding_to_set = FALSE;
+        controller->adding_to_set = FALSE;
     }
 }
 
 static void
 _add_picture_to_photoset (FrogrController *self, UploadOnePictureData *uop_data)
 {
-  FrogrControllerPrivate *priv = NULL;
   FrogrPicture *picture = NULL;
   FrogrPhotoSet *set = NULL;
   gchar *debug_msg = NULL;
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
   picture = uop_data->picture;
   set = FROGR_PHOTOSET (uop_data->photosets->data);
 
   /* Set with ID: Add picture to it */
-  fsp_session_add_to_photoset (priv->session,
+  fsp_session_add_to_photoset (self->session,
                                frogr_picture_get_id (picture),
                                frogr_photoset_get_id (set),
                                uop_data->cancellable,
@@ -1629,21 +1580,18 @@ _add_to_photoset_cb (GObject *object, GAsyncResult *res, gpointer data)
         }
 
       if (!keep_going)
-        FROGR_CONTROLLER_GET_PRIVATE (controller)->adding_to_set = FALSE;
+        controller->adding_to_set = FALSE;
     }
 }
 
 static gboolean
 _add_picture_to_groups (FrogrController *self, UploadOnePictureData *uop_data)
 {
-  FrogrControllerPrivate *priv = NULL;
-
   /* Add pictures to groups, if any */
   if (g_slist_length (uop_data->groups) == 0)
     return FALSE;
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  priv->adding_to_group = TRUE;
+  self->adding_to_group = TRUE;
 
   _add_picture_to_group (self, uop_data);
 
@@ -1653,16 +1601,14 @@ _add_picture_to_groups (FrogrController *self, UploadOnePictureData *uop_data)
 static void
 _add_picture_to_group (FrogrController *self, UploadOnePictureData *uop_data)
 {
-  FrogrControllerPrivate *priv = NULL;
   FrogrPicture *picture = NULL;
   FrogrGroup *group = NULL;
   gchar *debug_msg = NULL;
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
   picture = uop_data->picture;
   group = FROGR_GROUP (uop_data->groups->data);
 
-  fsp_session_add_to_group (priv->session,
+  fsp_session_add_to_group (self->session,
                             frogr_picture_get_id (picture),
                             frogr_group_get_id (group),
                             uop_data->cancellable,
@@ -1726,7 +1672,7 @@ _add_to_group_cb (GObject *object, GAsyncResult *res, gpointer data)
         }
 
       if (!keep_going)
-        FROGR_CONTROLLER_GET_PRIVATE (controller)->adding_to_group = FALSE;
+        controller->adding_to_group = FALSE;
     }
 }
 
@@ -1736,7 +1682,6 @@ _complete_picture_upload_on_idle (gpointer data)
   UploadOnePictureData *uop_data = NULL;
   UploadPicturesData *up_data = NULL;
   FrogrController *controller = NULL;
-  FrogrControllerPrivate *priv = NULL;
   FrogrPicture *picture = NULL;
 
   uop_data = (UploadOnePictureData*) data;
@@ -1744,11 +1689,10 @@ _complete_picture_upload_on_idle (gpointer data)
   up_data = uop_data->up_data;
 
   /* Keep the source while busy */
-  priv = FROGR_CONTROLLER_GET_PRIVATE (controller);
-  if (priv->setting_license || priv->setting_location || priv->setting_replace_date_posted
-      || priv->adding_to_set || priv->adding_to_group)
+  if (controller->setting_license || controller->setting_location || controller->setting_replace_date_posted
+      || controller->adding_to_set || controller->adding_to_group)
     {
-      frogr_main_view_pulse_progress (priv->mainview);
+      frogr_main_view_pulse_progress (controller->mainview);
       _update_upload_progress (controller, up_data);
       return G_SOURCE_CONTINUE;
     }
@@ -1762,7 +1706,7 @@ _complete_picture_upload_on_idle (gpointer data)
     {
       /* Remove it from the model if no error happened */
       FrogrModel *model = NULL;
-      model = frogr_main_view_get_model (priv->mainview);
+      model = frogr_main_view_get_model (controller->mainview);
       frogr_model_remove_picture (model, picture);
     }
 
@@ -1778,15 +1722,12 @@ _complete_picture_upload_on_idle (gpointer data)
 static void
 _on_file_loaded (FrogrFileLoader *loader, FrogrPicture *picture, FrogrController *self)
 {
-  FrogrControllerPrivate *priv = NULL;
   FrogrModel *model = NULL;
 
   g_return_if_fail (FROGR_IS_CONTROLLER (self));
   g_return_if_fail (FROGR_IS_PICTURE (picture));
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-
-  model = frogr_main_view_get_model (priv->mainview);
+  model = frogr_main_view_get_model (self->mainview);
   frogr_model_add_picture (model, picture);
 }
 
@@ -1850,8 +1791,6 @@ _fetch_account_info_finish (FrogrController *self, FetchAccountInfoData *data)
 static void
 _fetch_account_basic_info (FrogrController *self, FetchAccountInfoData *data)
 {
-  FrogrControllerPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_CONTROLLER (self));
 
   if (!frogr_controller_is_authorized (self))
@@ -1860,8 +1799,7 @@ _fetch_account_basic_info (FrogrController *self, FetchAccountInfoData *data)
       return;
     }
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  fsp_session_check_auth_info (priv->session, NULL,
+  fsp_session_check_auth_info (self->session, NULL,
                                (GAsyncReadyCallback)_fetch_account_basic_info_cb,
                                data);
 }
@@ -1871,38 +1809,36 @@ _fetch_account_basic_info_cb (GObject *object, GAsyncResult *res, FetchAccountIn
 {
   FspSession *session = NULL;
   FrogrController *controller = NULL;
-  FrogrControllerPrivate *priv = NULL;
   FspDataAuthToken *auth_token = NULL;
   GError *error = NULL;
 
   session = FSP_SESSION (object);
   controller = frogr_controller_get_instance ();
-  priv = FROGR_CONTROLLER_GET_PRIVATE (controller);
 
   auth_token = fsp_session_check_auth_info_finish (session, res, &error);
-  if (auth_token && priv->account)
+  if (auth_token && controller->account)
     {
       const gchar *old_username = NULL;
       const gchar *old_fullname = NULL;
       gboolean username_changed = FALSE;
 
       /* Check for changes (only for fields that it makes sense) */
-      old_username = frogr_account_get_username (priv->account);
-      old_fullname = frogr_account_get_fullname (priv->account);
+      old_username = frogr_account_get_username (controller->account);
+      old_fullname = frogr_account_get_fullname (controller->account);
       if (g_strcmp0 (old_username, auth_token->username)
           || g_strcmp0 (old_fullname, auth_token->fullname))
         {
           username_changed = TRUE;
         }
 
-      frogr_account_set_username (priv->account, auth_token->username);
-      frogr_account_set_fullname (priv->account, auth_token->fullname);
+      frogr_account_set_username (controller->account, auth_token->username);
+      frogr_account_set_fullname (controller->account, auth_token->fullname);
 
       if (username_changed)
         {
           /* Save to disk and emit signal if basic info changed */
-          frogr_config_save_accounts (priv->config);
-          g_signal_emit (controller, signals[ACTIVE_ACCOUNT_CHANGED], 0, priv->account);
+          frogr_config_save_accounts (controller->config);
+          g_signal_emit (controller, signals[ACTIVE_ACCOUNT_CHANGED], 0, controller->account);
         }
 
       /* Now fetch the remaining bits of information */
@@ -1924,8 +1860,6 @@ _fetch_account_basic_info_cb (GObject *object, GAsyncResult *res, FetchAccountIn
 
 static void _fetch_account_upload_status (FrogrController *self, FetchAccountInfoData *data)
 {
-  FrogrControllerPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_CONTROLLER (self));
 
   if (!frogr_controller_is_authorized (self))
@@ -1934,8 +1868,7 @@ static void _fetch_account_upload_status (FrogrController *self, FetchAccountInf
       return;
     }
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  fsp_session_get_upload_status (priv->session, NULL,
+  fsp_session_get_upload_status (self->session, NULL,
                                  (GAsyncReadyCallback)_fetch_account_upload_status_cb,
                                  data);
 }
@@ -1945,45 +1878,43 @@ _fetch_account_upload_status_cb (GObject *object, GAsyncResult *res, FetchAccoun
 {
   FspSession *session = NULL;
   FrogrController *controller = NULL;
-  FrogrControllerPrivate *priv = NULL;
   FspDataUploadStatus *upload_status = NULL;
   GError *error = NULL;
 
   session = FSP_SESSION (object);
   controller = frogr_controller_get_instance ();
-  priv = FROGR_CONTROLLER_GET_PRIVATE (controller);
 
   upload_status = fsp_session_get_upload_status_finish (session, res, &error);
-  if (upload_status && priv->account)
+  if (upload_status && controller->account)
     {
       gulong old_remaining_bw;
       gulong old_max_bw;
       gboolean old_is_pro;
 
       /* Check for changes */
-      old_remaining_bw = frogr_account_get_remaining_bandwidth (priv->account);
-      old_max_bw = frogr_account_get_max_bandwidth (priv->account);
-      old_is_pro = frogr_account_is_pro (priv->account);
+      old_remaining_bw = frogr_account_get_remaining_bandwidth (controller->account);
+      old_max_bw = frogr_account_get_max_bandwidth (controller->account);
+      old_is_pro = frogr_account_is_pro (controller->account);
 
-      frogr_account_set_remaining_bandwidth (priv->account, upload_status->bw_remaining_kb);
-      frogr_account_set_max_bandwidth (priv->account, upload_status->bw_max_kb);
-      frogr_account_set_max_picture_filesize (priv->account, upload_status->picture_fs_max_kb);
+      frogr_account_set_remaining_bandwidth (controller->account, upload_status->bw_remaining_kb);
+      frogr_account_set_max_bandwidth (controller->account, upload_status->bw_max_kb);
+      frogr_account_set_max_picture_filesize (controller->account, upload_status->picture_fs_max_kb);
 
-      frogr_account_set_remaining_videos (priv->account, upload_status->bw_remaining_videos);
-      frogr_account_set_current_videos (priv->account, upload_status->bw_used_videos);
-      frogr_account_set_max_video_filesize (priv->account, upload_status->video_fs_max_kb);
+      frogr_account_set_remaining_videos (controller->account, upload_status->bw_remaining_videos);
+      frogr_account_set_current_videos (controller->account, upload_status->bw_used_videos);
+      frogr_account_set_max_video_filesize (controller->account, upload_status->video_fs_max_kb);
 
-      frogr_account_set_is_pro (priv->account, upload_status->pro_user);
+      frogr_account_set_is_pro (controller->account, upload_status->pro_user);
 
       /* Mark that we received this extra info for the user */
-      frogr_account_set_has_extra_info (priv->account, TRUE);
+      frogr_account_set_has_extra_info (controller->account, TRUE);
 
       if (old_remaining_bw != upload_status->bw_remaining_kb
           || old_max_bw != upload_status->bw_max_kb
           || old_is_pro != upload_status->pro_user)
         {
           /* Emit signal if extra info changed */
-          g_signal_emit (controller, signals[ACTIVE_ACCOUNT_CHANGED], 0, priv->account);
+          g_signal_emit (controller, signals[ACTIVE_ACCOUNT_CHANGED], 0, controller->account);
         }
 
       /* Chain with the continuation function if any */
@@ -2004,33 +1935,28 @@ _fetch_account_upload_status_cb (GObject *object, GAsyncResult *res, FetchAccoun
 static void
 _fetch_extra_data (FrogrController *self, gboolean force)
 {
-  FrogrControllerPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_CONTROLLER (self));
 
   if (!frogr_controller_is_connected (self))
     return;
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-
   /* Invalidate all fetched data. */
   if (force)
     _invalidate_extra_data (self);
 
   /* Sets, groups and tags can take much longer to retrieve,
      so we only retrieve that if actually needed */
-  if (force || !priv->photosets_fetched)
+  if (force || !self->photosets_fetched)
     _fetch_photosets (self);
-  if (force || !priv->groups_fetched)
+  if (force || !self->groups_fetched)
     _fetch_groups (self);
-  if (force || !priv->tags_fetched)
+  if (force || !self->tags_fetched)
     _fetch_tags (self);
 }
 
 static void
 _fetch_photosets (FrogrController *self)
 {
-  FrogrControllerPrivate *priv = NULL;
   CancellableOperationData *co_data = NULL;
 
   g_return_if_fail(FROGR_IS_CONTROLLER (self));
@@ -2038,14 +1964,13 @@ _fetch_photosets (FrogrController *self)
   if (!frogr_controller_is_connected (self))
     return;
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  priv->photosets_fetched = FALSE;
-  priv->fetching_photosets = TRUE;
+  self->photosets_fetched = FALSE;
+  self->fetching_photosets = TRUE;
 
   co_data = g_slice_new0 (CancellableOperationData);
   co_data->controller = self;
   co_data->cancellable = _register_new_cancellable (self);
-  fsp_session_get_photosets (priv->session, co_data->cancellable,
+  fsp_session_get_photosets (self->session, co_data->cancellable,
                              _fetch_photosets_cb, co_data);
 }
 
@@ -2055,7 +1980,6 @@ _fetch_photosets_cb (GObject *object, GAsyncResult *res, gpointer data)
   FspSession *session = NULL;
   CancellableOperationData *co_data = NULL;
   FrogrController *controller = NULL;
-  FrogrControllerPrivate *priv = NULL;
   GSList *data_sets_list = NULL;
   GSList *sets_list = NULL;
   GError *error = NULL;
@@ -2064,7 +1988,6 @@ _fetch_photosets_cb (GObject *object, GAsyncResult *res, gpointer data)
   session = FSP_SESSION (object);
   co_data = (CancellableOperationData*) data;
   controller = co_data->controller;
-  priv = FROGR_CONTROLLER_GET_PRIVATE (controller);
 
   data_sets_list = fsp_session_get_photosets_finish (session, res, &error);
   if (error != NULL)
@@ -2088,7 +2011,7 @@ _fetch_photosets_cb (GObject *object, GAsyncResult *res, gpointer data)
           FrogrPhotoSet *current_set = NULL;
 
           /* Consider the received result valid if no previous one has arrived first */
-          valid = !priv->photosets_fetched;
+          valid = !controller->photosets_fetched;
 
           for (item = data_sets_list; item; item = g_slist_next (item))
             {
@@ -2112,21 +2035,20 @@ _fetch_photosets_cb (GObject *object, GAsyncResult *res, gpointer data)
 
   if (valid)
     {
-      FrogrModel *model = frogr_main_view_get_model (priv->mainview);
+      FrogrModel *model = frogr_main_view_get_model (controller->mainview);
       frogr_model_set_remote_photosets (model, sets_list);
-      priv->photosets_fetched = TRUE;
+      controller->photosets_fetched = TRUE;
     }
 
   _clear_cancellable (controller, co_data->cancellable);
   g_slice_free (CancellableOperationData, co_data);
 
-  priv->fetching_photosets = FALSE;
+  controller->fetching_photosets = FALSE;
 }
 
 static void
 _fetch_groups (FrogrController *self)
 {
-  FrogrControllerPrivate *priv = NULL;
   CancellableOperationData *co_data = NULL;
 
   g_return_if_fail(FROGR_IS_CONTROLLER (self));
@@ -2134,14 +2056,13 @@ _fetch_groups (FrogrController *self)
   if (!frogr_controller_is_connected (self))
     return;
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  priv->groups_fetched = FALSE;
-  priv->fetching_groups = TRUE;
+  self->groups_fetched = FALSE;
+  self->fetching_groups = TRUE;
 
   co_data = g_slice_new0 (CancellableOperationData);
   co_data->controller = self;
   co_data->cancellable = _register_new_cancellable (self);
-  fsp_session_get_groups (priv->session, co_data->cancellable,
+  fsp_session_get_groups (self->session, co_data->cancellable,
                           _fetch_groups_cb, co_data);
 }
 
@@ -2151,7 +2072,6 @@ _fetch_groups_cb (GObject *object, GAsyncResult *res, gpointer data)
   FspSession *session = NULL;
   CancellableOperationData *co_data = NULL;
   FrogrController *controller = NULL;
-  FrogrControllerPrivate *priv = NULL;
   GSList *data_groups_list = NULL;
   GSList *groups_list = NULL;
   GError *error = NULL;
@@ -2160,7 +2080,6 @@ _fetch_groups_cb (GObject *object, GAsyncResult *res, gpointer data)
   session = FSP_SESSION (object);
   co_data = (CancellableOperationData*) data;
   controller = co_data->controller;
-  priv = FROGR_CONTROLLER_GET_PRIVATE (controller);
 
   data_groups_list = fsp_session_get_groups_finish (session, res, &error);
   if (error != NULL)
@@ -2184,7 +2103,7 @@ _fetch_groups_cb (GObject *object, GAsyncResult *res, gpointer data)
           FrogrGroup *current_group = NULL;
 
           /* Consider the received result valid if no previous one has arrived first */
-          valid = !priv->groups_fetched;
+          valid = !controller->groups_fetched;
 
           for (item = data_groups_list; item; item = g_slist_next (item))
             {
@@ -2207,21 +2126,20 @@ _fetch_groups_cb (GObject *object, GAsyncResult *res, gpointer data)
 
   if (valid)
     {
-      FrogrModel *model = frogr_main_view_get_model (priv->mainview);
+      FrogrModel *model = frogr_main_view_get_model (controller->mainview);
       frogr_model_set_groups (model, groups_list);
-      priv->groups_fetched = TRUE;
+      controller->groups_fetched = TRUE;
     }
 
   _clear_cancellable (controller, co_data->cancellable);
   g_slice_free (CancellableOperationData, co_data);
 
-  priv->fetching_groups = FALSE;
+  controller->fetching_groups = FALSE;
 }
 
 static void
 _fetch_tags (FrogrController *self)
 {
-  FrogrControllerPrivate *priv = NULL;
   CancellableOperationData *co_data = NULL;
 
   g_return_if_fail(FROGR_IS_CONTROLLER (self));
@@ -2229,18 +2147,17 @@ _fetch_tags (FrogrController *self)
   if (!frogr_controller_is_connected (self))
     return;
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  priv->tags_fetched = FALSE;
+  self->tags_fetched = FALSE;
 
   /* Do not actually fetch tags if the autocompletion is off */
-  if (!frogr_config_get_tags_autocompletion (priv->config))
+  if (!frogr_config_get_tags_autocompletion (self->config))
     return;
-  priv->fetching_tags = TRUE;
+  self->fetching_tags = TRUE;
 
   co_data = g_slice_new0 (CancellableOperationData);
   co_data->controller = self;
   co_data->cancellable = _register_new_cancellable (self);
-  fsp_session_get_tags_list (priv->session, co_data->cancellable,
+  fsp_session_get_tags_list (self->session, co_data->cancellable,
                              _fetch_tags_cb, co_data);
 }
 
@@ -2250,7 +2167,6 @@ _fetch_tags_cb (GObject *object, GAsyncResult *res, gpointer data)
   FspSession *session = NULL;
   CancellableOperationData *co_data = NULL;
   FrogrController *controller = NULL;
-  FrogrControllerPrivate *priv = NULL;
   GSList *tags_list = NULL;
   GError *error = NULL;
   gboolean valid = FALSE;
@@ -2258,7 +2174,6 @@ _fetch_tags_cb (GObject *object, GAsyncResult *res, gpointer data)
   session = FSP_SESSION (object);
   co_data = (CancellableOperationData*) data;
   controller = co_data->controller;
-  priv = FROGR_CONTROLLER_GET_PRIVATE (controller);
 
   tags_list = fsp_session_get_tags_list_finish (session, res, &error);
   if (error != NULL)
@@ -2278,7 +2193,7 @@ _fetch_tags_cb (GObject *object, GAsyncResult *res, gpointer data)
   else
     {
       /* Consider the received result valid if no previous one has arrived first */
-      valid = !priv->tags_fetched;
+      valid = !controller->tags_fetched;
       if (!valid)
         {
           g_slist_foreach (tags_list, (GFunc)g_free, NULL);
@@ -2288,15 +2203,15 @@ _fetch_tags_cb (GObject *object, GAsyncResult *res, gpointer data)
 
   if (valid)
     {
-      FrogrModel *model = frogr_main_view_get_model (priv->mainview);
+      FrogrModel *model = frogr_main_view_get_model (controller->mainview);
       frogr_model_set_remote_tags (model, tags_list);
-      priv->tags_fetched = TRUE;
+      controller->tags_fetched = TRUE;
     }
 
   _clear_cancellable (controller, co_data->cancellable);
   g_slice_free (CancellableOperationData, co_data);
 
-  priv->fetching_tags = FALSE;
+  controller->fetching_tags = FALSE;
 }
 
 static void
@@ -2314,45 +2229,43 @@ static gboolean
 _show_progress_on_idle (gpointer data)
 {
   FrogrController *controller = NULL;
-  FrogrControllerPrivate *priv = NULL;
   FetchingActivity activity = FETCHING_NOTHING;
   const gchar *text = NULL;
   gboolean show_dialog = FALSE;
 
   controller = frogr_controller_get_instance ();
-  priv = FROGR_CONTROLLER_GET_PRIVATE (controller);
 
   activity = GPOINTER_TO_INT (data);
   switch (activity)
     {
     case FETCHING_TOKEN_REPLACEMENT:
       text = _("Updating credentials…");
-      show_dialog = priv->fetching_token_replacement;
+      show_dialog = controller->fetching_token_replacement;
       break;
 
     case FETCHING_AUTH_URL:
       text = _("Retrieving data for authorization…");
-      show_dialog = priv->fetching_auth_url;
+      show_dialog = controller->fetching_auth_url;
       break;
 
     case FETCHING_AUTH_TOKEN:
       text = _("Finishing authorization…");
-      show_dialog = priv->fetching_auth_token;
+      show_dialog = controller->fetching_auth_token;
       break;
 
     case FETCHING_PHOTOSETS:
       text = _("Retrieving list of sets…");
-      show_dialog = priv->fetching_photosets;
+      show_dialog = controller->fetching_photosets;
       break;
 
     case FETCHING_GROUPS:
       text = _("Retrieving list of groups…");
-      show_dialog = priv->fetching_groups;
+      show_dialog = controller->fetching_groups;
       break;
 
     case FETCHING_TAGS:
       text = _("Retrieving list of tags…");
-      show_dialog = priv->fetching_tags;
+      show_dialog = controller->fetching_tags;
       break;
 
     default:
@@ -2360,7 +2273,7 @@ _show_progress_on_idle (gpointer data)
     }
 
   /* Pulse and show/hide the progress dialog as needed */
-  frogr_main_view_pulse_progress (priv->mainview);
+  frogr_main_view_pulse_progress (controller->mainview);
   if (show_dialog)
     {
       gchar *title = NULL;
@@ -2383,14 +2296,14 @@ _show_progress_on_idle (gpointer data)
           title = g_strdup ("");
         }
 
-      frogr_main_view_show_progress (priv->mainview, title, text);
+      frogr_main_view_show_progress (controller->mainview, title, text);
       g_free (title);
 
       return G_SOURCE_CONTINUE;
     }
   else
     {
-      frogr_main_view_hide_progress (priv->mainview);
+      frogr_main_view_hide_progress (controller->mainview);
       return G_SOURCE_REMOVE;
     }
 }
@@ -2399,24 +2312,22 @@ static gboolean
 _show_details_dialog_on_idle (GSList *pictures)
 {
   FrogrController *controller = NULL;
-  FrogrControllerPrivate *priv = NULL;
   FrogrModel *model = NULL;
   GSList *tags_list = NULL;
 
   controller = frogr_controller_get_instance ();
-  priv = FROGR_CONTROLLER_GET_PRIVATE (controller);
 
   /* Keep the source while internally busy */
-  if (priv->fetching_tags && frogr_config_get_tags_autocompletion (priv->config))
+  if (controller->fetching_tags && frogr_config_get_tags_autocompletion (controller->config))
     return G_SOURCE_CONTINUE;
 
-  model = frogr_main_view_get_model (priv->mainview);
+  model = frogr_main_view_get_model (controller->mainview);
   tags_list = frogr_model_get_tags (model);
 
   /* Sets already pre-fetched: show the dialog */
-  frogr_details_dialog_show (GTK_WINDOW (priv->mainview), pictures, tags_list);
+  frogr_details_dialog_show (GTK_WINDOW (controller->mainview), pictures, tags_list);
 
-  priv->show_details_dialog_source_id = 0;
+  controller->show_details_dialog_source_id = 0;
   return G_SOURCE_REMOVE;
 }
 
@@ -2424,24 +2335,22 @@ static gboolean
 _show_add_tags_dialog_on_idle (GSList *pictures)
 {
   FrogrController *controller = NULL;
-  FrogrControllerPrivate *priv = NULL;
   FrogrModel *model = NULL;
   GSList *tags_list = NULL;
 
   controller = frogr_controller_get_instance ();
-  priv = FROGR_CONTROLLER_GET_PRIVATE (controller);
 
   /* Keep the source while internally busy */
-  if (priv->fetching_tags && frogr_config_get_tags_autocompletion (priv->config))
+  if (controller->fetching_tags && frogr_config_get_tags_autocompletion (controller->config))
       return G_SOURCE_CONTINUE;
 
-  model = frogr_main_view_get_model (priv->mainview);
+  model = frogr_main_view_get_model (controller->mainview);
   tags_list = frogr_model_get_tags (model);
 
   /* Sets already pre-fetched: show the dialog */
-  frogr_add_tags_dialog_show (GTK_WINDOW (priv->mainview), pictures, tags_list);
+  frogr_add_tags_dialog_show (GTK_WINDOW (controller->mainview), pictures, tags_list);
 
-  priv->show_add_tags_dialog_source_id = 0;
+  controller->show_add_tags_dialog_source_id = 0;
   return G_SOURCE_REMOVE;
 }
 
@@ -2449,23 +2358,21 @@ static gboolean
 _show_create_new_set_dialog_on_idle (GSList *pictures)
 {
   FrogrController *controller = NULL;
-  FrogrControllerPrivate *priv = NULL;
   FrogrModel *model = NULL;
   GSList *photosets = NULL;
 
   controller = frogr_controller_get_instance ();
-  priv = FROGR_CONTROLLER_GET_PRIVATE (controller);
 
   /* Keep the source while internally busy */
-  if (priv->fetching_photosets)
+  if (controller->fetching_photosets)
       return G_SOURCE_CONTINUE;
 
-  model = frogr_main_view_get_model (priv->mainview);
+  model = frogr_main_view_get_model (controller->mainview);
   photosets = frogr_model_get_photosets (model);
 
-  frogr_create_new_set_dialog_show (GTK_WINDOW (priv->mainview), pictures, photosets);
+  frogr_create_new_set_dialog_show (GTK_WINDOW (controller->mainview), pictures, photosets);
 
-  priv->show_create_new_set_dialog_source_id = 0;
+  controller->show_create_new_set_dialog_source_id = 0;
   return G_SOURCE_REMOVE;
 }
 
@@ -2473,26 +2380,24 @@ static gboolean
 _show_add_to_set_dialog_on_idle (GSList *pictures)
 {
   FrogrController *controller = NULL;
-  FrogrControllerPrivate *priv = NULL;
   FrogrModel *model = NULL;
   GSList *photosets = NULL;
 
   controller = frogr_controller_get_instance ();
-  priv = FROGR_CONTROLLER_GET_PRIVATE (controller);
 
   /* Keep the source while internally busy */
-  if (priv->fetching_photosets)
+  if (controller->fetching_photosets)
       return G_SOURCE_CONTINUE;
 
-  model = frogr_main_view_get_model (priv->mainview);
+  model = frogr_main_view_get_model (controller->mainview);
   photosets = frogr_model_get_photosets (model);
 
   if (frogr_model_n_photosets (model) > 0)
-    frogr_add_to_set_dialog_show (GTK_WINDOW (priv->mainview), pictures, photosets);
-  else if (priv->photosets_fetched)
-    frogr_util_show_info_dialog (GTK_WINDOW (priv->mainview), _("No sets found"));
+    frogr_add_to_set_dialog_show (GTK_WINDOW (controller->mainview), pictures, photosets);
+  else if (controller->photosets_fetched)
+    frogr_util_show_info_dialog (GTK_WINDOW (controller->mainview), _("No sets found"));
 
-  priv->show_add_to_set_dialog_source_id = 0;
+  controller->show_add_to_set_dialog_source_id = 0;
   return G_SOURCE_REMOVE;
 }
 
@@ -2500,40 +2405,35 @@ static gboolean
 _show_add_to_group_dialog_on_idle (GSList *pictures)
 {
   FrogrController *controller = NULL;
-  FrogrControllerPrivate *priv = NULL;
   FrogrModel *model = NULL;
   GSList *groups = NULL;
 
   controller = frogr_controller_get_instance ();
-  priv = FROGR_CONTROLLER_GET_PRIVATE (controller);
 
   /* Keep the source while internally busy */
-  if (priv->fetching_groups)
+  if (controller->fetching_groups)
       return G_SOURCE_CONTINUE;
 
-  model = frogr_main_view_get_model (priv->mainview);
+  model = frogr_main_view_get_model (controller->mainview);
   groups = frogr_model_get_groups (model);
 
   if (frogr_model_n_groups (model) > 0)
-    frogr_add_to_group_dialog_show (GTK_WINDOW (priv->mainview), pictures, groups);
-  else if (priv->groups_fetched)
-    frogr_util_show_info_dialog (GTK_WINDOW (priv->mainview), _("No groups found"));
+    frogr_add_to_group_dialog_show (GTK_WINDOW (controller->mainview), pictures, groups);
+  else if (controller->groups_fetched)
+    frogr_util_show_info_dialog (GTK_WINDOW (controller->mainview), _("No groups found"));
 
-  priv->show_add_to_group_dialog_source_id = 0;
+  controller->show_add_to_group_dialog_source_id = 0;
   return G_SOURCE_REMOVE;
 }
 
 static gboolean
 _is_modal_dialog_about_to_be_shown  (FrogrController *self)
 {
-  FrogrControllerPrivate *priv = NULL;
-
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  if (priv->show_details_dialog_source_id
-      || priv->show_add_tags_dialog_source_id
-      || priv->show_create_new_set_dialog_source_id
-      || priv->show_add_to_set_dialog_source_id
-      || priv->show_add_to_group_dialog_source_id)
+  if (self->show_details_dialog_source_id
+      || self->show_add_tags_dialog_source_id
+      || self->show_create_new_set_dialog_source_id
+      || self->show_add_to_set_dialog_source_id
+      || self->show_add_to_group_dialog_source_id)
     return TRUE;
 
   return FALSE;
@@ -2563,18 +2463,18 @@ _frogr_controller_constructor (GType type,
 static void
 _frogr_controller_dispose (GObject* object)
 {
-  FrogrControllerPrivate *priv = FROGR_CONTROLLER_GET_PRIVATE (object);
+  FrogrController *controller = FROGR_CONTROLLER (object);
 
-  g_clear_object (&priv->mainview);
-  g_clear_object (&priv->config);
-  g_clear_object (&priv->account);
-  g_clear_object (&priv->session);
+  g_clear_object (&controller->mainview);
+  g_clear_object (&controller->config);
+  g_clear_object (&controller->account);
+  g_clear_object (&controller->session);
 
-  if (priv->cancellables)
+  if (controller->cancellables)
     {
-      g_list_foreach (priv->cancellables, (GFunc)g_object_unref, NULL);
-      g_list_free (priv->cancellables);
-      priv->cancellables = NULL;
+      g_list_foreach (controller->cancellables, (GFunc)g_object_unref, NULL);
+      g_list_free (controller->cancellables);
+      controller->cancellables = NULL;
     }
 
   G_OBJECT_CLASS (frogr_controller_parent_class)->dispose (object);
@@ -2611,44 +2511,40 @@ frogr_controller_class_init (FrogrControllerClass *klass)
                   0, NULL, NULL,
                   g_cclosure_marshal_VOID__VOID,
                   G_TYPE_NONE, 0);
-
-  g_type_class_add_private (obj_class, sizeof (FrogrControllerPrivate));
 }
 
 static void
 frogr_controller_init (FrogrController *self)
 {
-  FrogrControllerPrivate *priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-
   /* Default variables */
-  priv->state = FROGR_STATE_IDLE;
-  priv->mainview = NULL;
-
-  priv->config = frogr_config_get_instance ();
-  g_object_ref (priv->config);
-
-  priv->session = fsp_session_new (API_KEY, SHARED_SECRET, NULL);
-  priv->cancellables = NULL;
-  priv->app_running = FALSE;
-  priv->fetching_token_replacement = FALSE;
-  priv->fetching_auth_url = FALSE;
-  priv->fetching_auth_token = FALSE;
-  priv->fetching_photosets = FALSE;
-  priv->fetching_groups = FALSE;
-  priv->fetching_tags = FALSE;
-  priv->setting_license = FALSE;
-  priv->setting_location = FALSE;
-  priv->setting_replace_date_posted = FALSE;
-  priv->adding_to_set = FALSE;
-  priv->adding_to_group = FALSE;
-  priv->photosets_fetched = FALSE;
-  priv->groups_fetched = FALSE;
-  priv->tags_fetched = FALSE;
-  priv->show_details_dialog_source_id = 0;
-  priv->show_add_tags_dialog_source_id = 0;
-  priv->show_create_new_set_dialog_source_id = 0;
-  priv->show_add_to_set_dialog_source_id = 0;
-  priv->show_add_to_group_dialog_source_id = 0;
+  self->state = FROGR_STATE_IDLE;
+  self->mainview = NULL;
+
+  self->config = frogr_config_get_instance ();
+  g_object_ref (self->config);
+
+  self->session = fsp_session_new (API_KEY, SHARED_SECRET, NULL);
+  self->cancellables = NULL;
+  self->app_running = FALSE;
+  self->fetching_token_replacement = FALSE;
+  self->fetching_auth_url = FALSE;
+  self->fetching_auth_token = FALSE;
+  self->fetching_photosets = FALSE;
+  self->fetching_groups = FALSE;
+  self->fetching_tags = FALSE;
+  self->setting_license = FALSE;
+  self->setting_location = FALSE;
+  self->setting_replace_date_posted = FALSE;
+  self->adding_to_set = FALSE;
+  self->adding_to_group = FALSE;
+  self->photosets_fetched = FALSE;
+  self->groups_fetched = FALSE;
+  self->tags_fetched = FALSE;
+  self->show_details_dialog_source_id = 0;
+  self->show_add_tags_dialog_source_id = 0;
+  self->show_create_new_set_dialog_source_id = 0;
+  self->show_add_to_set_dialog_source_id = 0;
+  self->show_add_to_group_dialog_source_id = 0;
 }
 
 
@@ -2666,20 +2562,17 @@ frogr_controller_get_instance (void)
 gint
 frogr_controller_run_app (FrogrController *self, int argc, char **argv)
 {
-  FrogrControllerPrivate *priv = NULL;
   GtkApplication *app = NULL;
   gint status;
 
   g_return_val_if_fail(FROGR_IS_CONTROLLER (self), -1);
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-
-  if (priv->app_running)
+  if (self->app_running)
     {
       DEBUG ("%s", "Application already running");
       return -1;
     }
-  priv->app_running = TRUE;
+  self->app_running = TRUE;
 
   /* Initialize and run the Gtk application */
   g_set_application_name(APP_SHORTNAME);
@@ -2701,40 +2594,31 @@ frogr_controller_run_app (FrogrController *self, int argc, char **argv)
 FrogrMainView *
 frogr_controller_get_main_view (FrogrController *self)
 {
-  FrogrControllerPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_CONTROLLER (self), FALSE);
-
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  return priv->mainview;
+  return self->mainview;
 }
 
 FrogrModel *
 frogr_controller_get_model (FrogrController *self)
 {
-  FrogrControllerPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_CONTROLLER (self), FALSE);
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  if (!priv->mainview)
+  if (!self->mainview)
     return NULL;
 
-  return frogr_main_view_get_model (priv->mainview);;
+  return frogr_main_view_get_model (self->mainview);;
 }
 
 void
 frogr_controller_set_active_account (FrogrController *self, const gchar *username)
 {
-  FrogrControllerPrivate *priv = NULL;
   FrogrAccount *account = NULL;
 
   g_return_if_fail(FROGR_IS_CONTROLLER (self));
   g_return_if_fail(username);
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  frogr_config_set_active_account (priv->config, username);
-  account = frogr_config_get_active_account (priv->config);
+  frogr_config_set_active_account (self->config, username);
+  account = frogr_config_get_active_account (self->config);
 
   _set_active_account (self, account);
 }
@@ -2742,34 +2626,22 @@ frogr_controller_set_active_account (FrogrController *self, const gchar *usernam
 FrogrAccount *
 frogr_controller_get_active_account (FrogrController *self)
 {
-  FrogrControllerPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_CONTROLLER (self), FROGR_STATE_UNKNOWN);
-
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  return priv->account;
+  return self->account;
 }
 
 GSList *
 frogr_controller_get_all_accounts (FrogrController *self)
 {
-  FrogrControllerPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_CONTROLLER (self), FROGR_STATE_UNKNOWN);
-
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  return frogr_config_get_accounts (priv->config);
+  return frogr_config_get_accounts (self->config);
 }
 
 FrogrControllerState
 frogr_controller_get_state (FrogrController *self)
 {
-  FrogrControllerPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_CONTROLLER (self), FROGR_STATE_UNKNOWN);
-
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  return priv->state;
+  return self->state;
 }
 
 void
@@ -2778,19 +2650,16 @@ frogr_controller_set_proxy (FrogrController *self,
                             const char *host, const char *port,
                             const char *username, const char *password)
 {
-  FrogrControllerPrivate *priv = NULL;
   gboolean proxy_changed = FALSE;
 
   g_return_if_fail(FROGR_IS_CONTROLLER (self));
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-
   if (use_default_proxy)
     {
       DEBUG ("Using default proxy settings");
-      fsp_session_set_default_proxy (priv->session, TRUE);
+      fsp_session_set_default_proxy (self->session, TRUE);
 
-      if (!priv->photosets_fetched || !priv->groups_fetched || !priv->tags_fetched)
+      if (!self->photosets_fetched || !self->groups_fetched || !self->tags_fetched)
         _fetch_everything (self, FALSE);
 
       return;
@@ -2798,7 +2667,7 @@ frogr_controller_set_proxy (FrogrController *self,
 
   /* The host is mandatory to set up a proxy */
   if (host == NULL || *host == '\0') {
-    proxy_changed = fsp_session_set_custom_proxy (priv->session, NULL, NULL, NULL, NULL);
+    proxy_changed = fsp_session_set_custom_proxy (self->session, NULL, NULL, NULL, NULL);
     DEBUG ("%s", "Not enabling the HTTP proxy");
   } else {
     gchar *auth_part = NULL;
@@ -2814,76 +2683,60 @@ frogr_controller_set_proxy (FrogrController *self,
     DEBUG ("Using HTTP proxy: %s%s:%s", auth_part ? auth_part : "", host, port);
     g_free (auth_part);
 
-    proxy_changed = fsp_session_set_custom_proxy (priv->session,
+    proxy_changed = fsp_session_set_custom_proxy (self->session,
                                                   host, port,
                                                   username, password);
   }
 
   /* Re-fetch information if needed after changing proxy configuration */
-  if (priv->app_running && proxy_changed)
+  if (self->app_running && proxy_changed)
     _fetch_everything (self, FALSE);
 }
 
 void
 frogr_controller_fetch_tags_if_needed (FrogrController *self)
 {
-  FrogrControllerPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_CONTROLLER (self));
-
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  if (!priv->fetching_tags && !priv->tags_fetched)
+  if (!self->fetching_tags && !self->tags_fetched)
     _fetch_tags (self);
 }
 
 void
 frogr_controller_show_about_dialog (FrogrController *self)
 {
-  FrogrControllerPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_CONTROLLER (self));
 
   /* Run the about dialog */
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  frogr_about_dialog_show (GTK_WINDOW (priv->mainview));
+  frogr_about_dialog_show (GTK_WINDOW (self->mainview));
 }
 
 void
 frogr_controller_show_auth_dialog (FrogrController *self)
 {
-  FrogrControllerPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_CONTROLLER (self));
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-
   /* Do not show the authorization dialog if we are exchanging an old
      token for a new one, as it should re-authorize automatically */
-  if (priv->fetching_token_replacement)
+  if (self->fetching_token_replacement)
     return;
 
   /* Run the auth dialog */
-  frogr_auth_dialog_show (GTK_WINDOW (priv->mainview), REQUEST_AUTHORIZATION);
+  frogr_auth_dialog_show (GTK_WINDOW (self->mainview), REQUEST_AUTHORIZATION);
 }
 
 void
 frogr_controller_show_settings_dialog (FrogrController *self)
 {
-  FrogrControllerPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_CONTROLLER (self));
 
   /* Run the auth dialog */
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  frogr_settings_dialog_show (GTK_WINDOW (priv->mainview));
+  frogr_settings_dialog_show (GTK_WINDOW (self->mainview));
 }
 
 void
 frogr_controller_show_details_dialog (FrogrController *self,
                                       GSList *pictures)
 {
-  FrogrControllerPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_CONTROLLER (self));
 
   /* Don't show the dialog if one is to be shown already */
@@ -2891,16 +2744,15 @@ frogr_controller_show_details_dialog (FrogrController *self,
     return;
 
   /* Fetch the tags list first if needed */
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  if (frogr_config_get_tags_autocompletion (priv->config) && !priv->tags_fetched)
+  if (frogr_config_get_tags_autocompletion (self->config) && !self->tags_fetched)
     {
       gdk_threads_add_timeout (DEFAULT_TIMEOUT, (GSourceFunc) _show_progress_on_idle, GINT_TO_POINTER 
(FETCHING_TAGS));
-      if (!priv->fetching_tags)
+      if (!self->fetching_tags)
         _fetch_tags (self);
     }
 
   /* Show the dialog when possible */
-  priv->show_details_dialog_source_id =
+  self->show_details_dialog_source_id =
     gdk_threads_add_timeout_full (G_PRIORITY_DEFAULT_IDLE, DEFAULT_TIMEOUT,
                                   (GSourceFunc) _show_details_dialog_on_idle, pictures,
                                   (GDestroyNotify) _dispose_slist_of_objects);
@@ -2910,8 +2762,6 @@ void
 frogr_controller_show_add_tags_dialog (FrogrController *self,
                                        GSList *pictures)
 {
-  FrogrControllerPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_CONTROLLER (self));
 
   /* Don't show the dialog if one is to be shown already */
@@ -2919,16 +2769,15 @@ frogr_controller_show_add_tags_dialog (FrogrController *self,
     return;
 
   /* Fetch the tags list first if needed */
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  if (frogr_config_get_tags_autocompletion (priv->config) && !priv->tags_fetched)
+  if (frogr_config_get_tags_autocompletion (self->config) && !self->tags_fetched)
     {
       gdk_threads_add_timeout (DEFAULT_TIMEOUT, (GSourceFunc) _show_progress_on_idle, GINT_TO_POINTER 
(FETCHING_TAGS));
-      if (!priv->fetching_tags)
+      if (!self->fetching_tags)
         _fetch_tags (self);
     }
 
   /* Show the dialog when possible */
-  priv->show_add_tags_dialog_source_id =
+  self->show_add_tags_dialog_source_id =
     gdk_threads_add_timeout_full (G_PRIORITY_DEFAULT_IDLE, DEFAULT_TIMEOUT,
                                   (GSourceFunc) _show_add_tags_dialog_on_idle, pictures,
                                   (GDestroyNotify) _dispose_slist_of_objects);
@@ -2938,8 +2787,6 @@ void
 frogr_controller_show_create_new_set_dialog (FrogrController *self,
                                              GSList *pictures)
 {
-  FrogrControllerPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_CONTROLLER (self));
 
   /* Don't show the dialog if one is to be shown already */
@@ -2947,16 +2794,15 @@ frogr_controller_show_create_new_set_dialog (FrogrController *self,
     return;
 
   /* Fetch the sets first if needed */
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  if (!priv->photosets_fetched)
+  if (!self->photosets_fetched)
     {
       gdk_threads_add_timeout (DEFAULT_TIMEOUT, (GSourceFunc) _show_progress_on_idle, GINT_TO_POINTER 
(FETCHING_PHOTOSETS));
-      if (!priv->fetching_photosets)
+      if (!self->fetching_photosets)
         _fetch_photosets (self);
     }
 
   /* Show the dialog when possible */
-  priv->show_create_new_set_dialog_source_id =
+  self->show_create_new_set_dialog_source_id =
     gdk_threads_add_timeout_full (G_PRIORITY_DEFAULT_IDLE, DEFAULT_TIMEOUT,
                                   (GSourceFunc) _show_create_new_set_dialog_on_idle, pictures,
                                   (GDestroyNotify) _dispose_slist_of_objects);
@@ -2966,8 +2812,6 @@ void
 frogr_controller_show_add_to_set_dialog (FrogrController *self,
                                          GSList *pictures)
 {
-  FrogrControllerPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_CONTROLLER (self));
 
   /* Don't show the dialog if one is to be shown already */
@@ -2975,16 +2819,15 @@ frogr_controller_show_add_to_set_dialog (FrogrController *self,
     return;
 
   /* Fetch the sets first if needed */
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  if (!priv->photosets_fetched)
+  if (!self->photosets_fetched)
     {
       gdk_threads_add_timeout (DEFAULT_TIMEOUT, (GSourceFunc) _show_progress_on_idle, GINT_TO_POINTER 
(FETCHING_PHOTOSETS));
-      if (!priv->fetching_photosets)
+      if (!self->fetching_photosets)
         _fetch_photosets (self);
     }
 
   /* Show the dialog when possible */
-  priv->show_add_to_set_dialog_source_id =
+  self->show_add_to_set_dialog_source_id =
     gdk_threads_add_timeout_full (G_PRIORITY_DEFAULT_IDLE, DEFAULT_TIMEOUT,
                                   (GSourceFunc) _show_add_to_set_dialog_on_idle, pictures,
                                   (GDestroyNotify) _dispose_slist_of_objects);
@@ -2994,8 +2837,6 @@ void
 frogr_controller_show_add_to_group_dialog (FrogrController *self,
                                            GSList *pictures)
 {
-  FrogrControllerPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_CONTROLLER (self));
 
   /* Don't show the dialog if one is to be shown already */
@@ -3003,17 +2844,16 @@ frogr_controller_show_add_to_group_dialog (FrogrController *self,
     return;
 
   /* Fetch the groups first if needed */
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  if (!priv->groups_fetched)
+  if (!self->groups_fetched)
 
     {
       gdk_threads_add_timeout (DEFAULT_TIMEOUT, (GSourceFunc) _show_progress_on_idle, GINT_TO_POINTER 
(FETCHING_GROUPS));
-      if (!priv->fetching_groups)
+      if (!self->fetching_groups)
         _fetch_groups (self);
     }
 
   /* Show the dialog when possible */
-  priv->show_add_to_group_dialog_source_id =
+  self->show_add_to_group_dialog_source_id =
     gdk_threads_add_timeout_full (G_PRIORITY_DEFAULT_IDLE, DEFAULT_TIMEOUT,
                                   (GSourceFunc) _show_add_to_group_dialog_on_idle, pictures,
                                   (GDestroyNotify) _dispose_slist_of_objects);
@@ -3022,17 +2862,16 @@ frogr_controller_show_add_to_group_dialog (FrogrController *self,
 void
 frogr_controller_open_auth_url (FrogrController *self)
 {
-  FrogrControllerPrivate *priv = FROGR_CONTROLLER_GET_PRIVATE (self);
   CancellableOperationData *co_data = NULL;
 
   g_return_if_fail(FROGR_IS_CONTROLLER (self));
 
-  priv->fetching_auth_url = TRUE;
+  self->fetching_auth_url = TRUE;
 
   co_data = g_slice_new0 (CancellableOperationData);
   co_data->controller = self;
   co_data->cancellable = _register_new_cancellable (self);
-  fsp_session_get_auth_url (priv->session, co_data->cancellable,
+  fsp_session_get_auth_url (self->session, co_data->cancellable,
                             _get_auth_url_cb, co_data);
 
   gdk_threads_add_timeout (DEFAULT_TIMEOUT, (GSourceFunc) _show_progress_on_idle, GINT_TO_POINTER 
(FETCHING_AUTH_URL));
@@ -3044,17 +2883,16 @@ frogr_controller_open_auth_url (FrogrController *self)
 void
 frogr_controller_complete_auth (FrogrController *self, const gchar *verification_code)
 {
-  FrogrControllerPrivate *priv = FROGR_CONTROLLER_GET_PRIVATE (self);
   CancellableOperationData *co_data = NULL;
 
   g_return_if_fail(FROGR_IS_CONTROLLER (self));
 
-  priv->fetching_auth_token = TRUE;
+  self->fetching_auth_token = TRUE;
 
   co_data = g_slice_new0 (CancellableOperationData);
   co_data->controller = self;
   co_data->cancellable = _register_new_cancellable (self);
-  fsp_session_complete_auth (priv->session, verification_code, co_data->cancellable,
+  fsp_session_complete_auth (self->session, verification_code, co_data->cancellable,
                              _complete_auth_cb, co_data);
 
   gdk_threads_add_timeout (DEFAULT_TIMEOUT, (GSourceFunc) _show_progress_on_idle, GINT_TO_POINTER 
(FETCHING_AUTH_TOKEN));
@@ -3066,17 +2904,13 @@ frogr_controller_complete_auth (FrogrController *self, const gchar *verification
 gboolean
 frogr_controller_is_authorized (FrogrController *self)
 {
-  FrogrControllerPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_CONTROLLER (self), FALSE);
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-
-  if (!priv->account)
+  if (!self->account)
     return FALSE;
 
   /* Old versions for accounts previously stored must be updated first */
-  if (g_strcmp0 (frogr_account_get_version (priv->account), ACCOUNTS_CURRENT_VERSION))
+  if (g_strcmp0 (frogr_account_get_version (self->account), ACCOUNTS_CURRENT_VERSION))
     return FALSE;
 
   return TRUE;;
@@ -3085,30 +2919,23 @@ frogr_controller_is_authorized (FrogrController *self)
 void
 frogr_controller_revoke_authorization (FrogrController *self)
 {
-  FrogrControllerPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_CONTROLLER (self));
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-
   /* Ensure there's the token/account is no longer active anywhere */
-  fsp_session_set_token (priv->session, NULL);
-  fsp_session_set_token_secret (priv->session, NULL);
+  fsp_session_set_token (self->session, NULL);
+  fsp_session_set_token_secret (self->session, NULL);
   _set_active_account (self, NULL);
 }
 
 gboolean
 frogr_controller_is_connected (FrogrController *self)
 {
-  FrogrControllerPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_CONTROLLER (self), FALSE);
 
   /* We can't be sure 100% about having connected to flickr until we
      received the extra information for the current account */
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  if (priv->account)
-    return frogr_account_has_extra_info (priv->account);
+  if (self->account)
+    return frogr_account_has_extra_info (self->account);
 
   return FALSE;
 }
@@ -3117,19 +2944,16 @@ void
 frogr_controller_load_pictures (FrogrController *self,
                                 GSList *fileuris)
 {
-  FrogrControllerPrivate *priv = NULL;
   FrogrFileLoader *loader = NULL;
   gulong max_picture_filesize = G_MAXULONG;
   gulong max_video_filesize = G_MAXULONG;
 
   g_return_if_fail(FROGR_IS_CONTROLLER (self));
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-
-  if (priv->account)
+  if (self->account)
     {
-      max_picture_filesize = frogr_account_get_max_picture_filesize (priv->account);
-      max_video_filesize = frogr_account_get_max_video_filesize (priv->account);
+      max_picture_filesize = frogr_account_get_max_picture_filesize (self->account);
+      max_video_filesize = frogr_account_get_max_video_filesize (self->account);
     }
 
   loader = frogr_file_loader_new_from_uris (fileuris, max_picture_filesize, max_video_filesize);
@@ -3150,13 +2974,9 @@ frogr_controller_load_pictures (FrogrController *self,
 void
 frogr_controller_upload_pictures (FrogrController *self, GSList *pictures)
 {
-  FrogrControllerPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_CONTROLLER (self));
   g_return_if_fail(pictures);
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-
   /* Upload pictures */
   if (!frogr_controller_is_authorized (self))
     {
@@ -3165,7 +2985,7 @@ frogr_controller_upload_pictures (FrogrController *self, GSList *pictures)
                                " uploading any pictures to Flickr.\n"
                                "Please re-authorize it."), APP_SHORTNAME);
 
-      frogr_util_show_error_dialog (GTK_WINDOW (priv->mainview), msg);
+      frogr_util_show_error_dialog (GTK_WINDOW (self->mainview), msg);
       g_free (msg);
     }
   else if (!frogr_controller_is_connected (self))
@@ -3173,7 +2993,7 @@ frogr_controller_upload_pictures (FrogrController *self, GSList *pictures)
       gchar *msg = NULL;
       msg = g_strdup_printf (_("You need to be connected before"
                                " uploading any pictures to Flickr."));
-      frogr_util_show_error_dialog (GTK_WINDOW (priv->mainview), msg);
+      frogr_util_show_error_dialog (GTK_WINDOW (self->mainview), msg);
       g_free (msg);
     }
   else
@@ -3189,7 +3009,7 @@ frogr_controller_upload_pictures (FrogrController *self, GSList *pictures)
 
       /* Load the pictures! */
       _set_state (self, FROGR_STATE_UPLOADING_PICTURES);
-      frogr_main_view_show_progress (priv->mainview, _("Uploading Pictures"), NULL);
+      frogr_main_view_show_progress (self->mainview, _("Uploading Pictures"), NULL);
       _upload_next_picture (self, up_data);
     }
 }
@@ -3197,25 +3017,19 @@ frogr_controller_upload_pictures (FrogrController *self, GSList *pictures)
 void
 frogr_controller_reorder_pictures (FrogrController *self)
 {
-  FrogrControllerPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_CONTROLLER (self));
-
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  frogr_main_view_reorder_pictures (priv->mainview);
+  frogr_main_view_reorder_pictures (self->mainview);
 }
 
 void
 frogr_controller_cancel_ongoing_requests (FrogrController *self)
 {
-  FrogrControllerPrivate *priv = NULL;
   GCancellable *cancellable = NULL;
   GList *item = NULL;
 
   g_return_if_fail(FROGR_IS_CONTROLLER (self));
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  for (item = priv->cancellables; item; item = g_list_next (item))
+  for (item = self->cancellables; item; item = g_list_next (item))
     {
       cancellable = G_CANCELLABLE (item->data);
       if (!g_cancellable_is_cancelled (cancellable))
@@ -3226,7 +3040,6 @@ frogr_controller_cancel_ongoing_requests (FrogrController *self)
 gboolean
 frogr_controller_open_project_from_file (FrogrController *self, const gchar *path)
 {
-  FrogrControllerPrivate *priv = NULL;
   JsonParser *json_parser = NULL;
   GError *error = NULL;
   gboolean result = FALSE;
@@ -3234,8 +3047,6 @@ frogr_controller_open_project_from_file (FrogrController *self, const gchar *pat
   g_return_val_if_fail(FROGR_IS_CONTROLLER (self), FALSE);
   g_return_val_if_fail(path, FALSE);
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-
   /* Load from disk */
   json_parser = json_parser_new ();
   json_parser_load_from_file (json_parser, path, &error);
@@ -3244,7 +3055,7 @@ frogr_controller_open_project_from_file (FrogrController *self, const gchar *pat
       gchar *msg = NULL;
 
       msg = g_strdup_printf (_("Error opening project file"));
-      frogr_util_show_error_dialog (GTK_WINDOW (priv->mainview), msg);
+      frogr_util_show_error_dialog (GTK_WINDOW (self->mainview), msg);
       g_free (msg);
 
       DEBUG ("Error loading project file: %s", error->message);
@@ -3259,19 +3070,19 @@ frogr_controller_open_project_from_file (FrogrController *self, const gchar *pat
 
       /* Make sure we are not fetching any data from the network at
          this moment, or cancel otherwise, so the model is ready */
-      if (priv->fetching_photosets || priv->fetching_groups || priv->fetching_tags)
+      if (self->fetching_photosets || self->fetching_groups || self->fetching_tags)
         frogr_controller_cancel_ongoing_requests (self);
 
       /* Deserialize from the JSON data and update the model */
       _set_state (self, FROGR_STATE_LOADING_PICTURES);
 
-      model = frogr_main_view_get_model (priv->mainview);
+      model = frogr_main_view_get_model (self->mainview);
 
       root_node = json_parser_get_root (json_parser);
       root_object = json_node_get_object (root_node);
       data_object = json_object_get_object_member (root_object, "data");
 
-      frogr_main_view_update_project_path (priv->mainview, path);
+      frogr_main_view_update_project_path (self->mainview, path);
       frogr_model_deserialize (model, data_object);
       result = TRUE;
     }
@@ -3283,7 +3094,6 @@ frogr_controller_open_project_from_file (FrogrController *self, const gchar *pat
 gboolean
 frogr_controller_save_project_to_file (FrogrController *self, const gchar *path)
 {
-  FrogrControllerPrivate *priv = NULL;
   FrogrModel *model = NULL;
   JsonGenerator *json_gen = NULL;
   JsonNode *root_node = NULL;
@@ -3298,8 +3108,7 @@ frogr_controller_save_project_to_file (FrogrController *self, const gchar *path)
   g_return_val_if_fail(FROGR_IS_CONTROLLER (self), FALSE);
   g_return_val_if_fail(path, FALSE);
 
-  priv = FROGR_CONTROLLER_GET_PRIVATE (self);
-  model = frogr_main_view_get_model (priv->mainview);
+  model = frogr_main_view_get_model (self->mainview);
 
   n_pictures = frogr_model_n_pictures (model);
   n_photosets = frogr_model_n_photosets (model);
@@ -3344,7 +3153,7 @@ frogr_controller_save_project_to_file (FrogrController *self, const gchar *path)
       return FALSE;
     }
 
-  frogr_main_view_update_project_path (priv->mainview, path);
+  frogr_main_view_update_project_path (self->mainview, path);
   return TRUE;
 }
 
diff --git a/src/frogr-controller.h b/src/frogr-controller.h
index fcab3e8..82c949f 100644
--- a/src/frogr-controller.h
+++ b/src/frogr-controller.h
@@ -32,25 +32,9 @@
 
 G_BEGIN_DECLS
 
-#define FROGR_TYPE_CONTROLLER           (frogr_controller_get_type())
-#define FROGR_CONTROLLER(obj)           (G_TYPE_CHECK_INSTANCE_CAST(obj, FROGR_TYPE_CONTROLLER, 
FrogrController))
-#define FROGR_CONTROLLER_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST(klass, FROGR_TYPE_CONTROLLER, 
FrogrControllerClass))
-#define FROGR_IS_CONTROLLER(obj)           (G_TYPE_CHECK_INSTANCE_TYPE(obj, FROGR_TYPE_CONTROLLER))
-#define FROGR_IS_CONTROLLER_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE((klass), FROGR_TYPE_CONTROLLER))
-#define FROGR_CONTROLLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FROGR_TYPE_CONTROLLER, 
FrogrControllerClass))
-
-typedef struct _FrogrController      FrogrController;
-typedef struct _FrogrControllerClass FrogrControllerClass;
-
-struct _FrogrControllerClass
-{
-  GObjectClass parent_class;
-};
-
-struct _FrogrController
-{
-  GObject parent;
-};
+#define FROGR_TYPE_CONTROLLER (frogr_controller_get_type())
+
+G_DECLARE_FINAL_TYPE (FrogrController, frogr_controller, FROGR, CONTROLLER, GObject)
 
 typedef enum {
   FROGR_STATE_UNKNOWN,
@@ -61,8 +45,6 @@ typedef enum {
 
 #define FROGR_STATE_IS_BUSY(state) ((state) != FROGR_STATE_UNKNOWN && (state) != FROGR_STATE_IDLE)
 
-GType frogr_controller_get_type (void) G_GNUC_CONST;
-
 FrogrController *frogr_controller_get_instance (void);
 
 gint frogr_controller_run_app (FrogrController *self, int argc, char **argv);
diff --git a/src/frogr-create-new-set-dialog.c b/src/frogr-create-new-set-dialog.c
index 3acd9a3..ee97f77 100644
--- a/src/frogr-create-new-set-dialog.c
+++ b/src/frogr-create-new-set-dialog.c
@@ -29,14 +29,10 @@
 #include <config.h>
 #include <glib/gi18n.h>
 
-#define FROGR_CREATE_NEW_SET_DIALOG_GET_PRIVATE(object)                 \
-  (G_TYPE_INSTANCE_GET_PRIVATE ((object),                               \
-                                FROGR_TYPE_CREATE_NEW_SET_DIALOG,       \
-                                FrogrCreateNewSetDialogPrivate))
 
-G_DEFINE_TYPE (FrogrCreateNewSetDialog, frogr_create_new_set_dialog, GTK_TYPE_DIALOG)
+struct _FrogrCreateNewSetDialog {
+  GtkDialog parent;
 
-typedef struct _FrogrCreateNewSetDialogPrivate {
   GtkWidget *title_entry;
   GtkWidget *description_tv;
   GtkWidget *copy_to_pictures_cb;
@@ -45,7 +41,10 @@ typedef struct _FrogrCreateNewSetDialogPrivate {
   GSList *pictures;
   GSList *photosets;
   gboolean copy_to_pictures;
-} FrogrCreateNewSetDialogPrivate;
+};
+
+G_DEFINE_TYPE (FrogrCreateNewSetDialog, frogr_create_new_set_dialog, GTK_TYPE_DIALOG)
+
 
 /* Properties */
 enum  {
@@ -78,47 +77,38 @@ static void _dialog_response_cb (GtkDialog *dialog, gint response, gpointer data
 static void
 _set_pictures (FrogrCreateNewSetDialog *self, const GSList *pictures)
 {
-  FrogrCreateNewSetDialogPrivate *priv = FROGR_CREATE_NEW_SET_DIALOG_GET_PRIVATE (self);
-  priv->pictures = g_slist_copy ((GSList*) pictures);
-  g_slist_foreach (priv->pictures, (GFunc)g_object_ref, NULL);
+  self->pictures = g_slist_copy ((GSList*) pictures);
+  g_slist_foreach (self->pictures, (GFunc)g_object_ref, NULL);
 }
 
 static void
 _set_photosets (FrogrCreateNewSetDialog *self, const GSList *photosets)
 {
-  FrogrCreateNewSetDialogPrivate *priv = NULL;
-
-  priv = FROGR_CREATE_NEW_SET_DIALOG_GET_PRIVATE (self);
-  priv->photosets = g_slist_copy ((GSList*)photosets);
-  g_slist_foreach (priv->photosets, (GFunc)g_object_ref, NULL);
+  self->photosets = g_slist_copy ((GSList*)photosets);
+  g_slist_foreach (self->photosets, (GFunc)g_object_ref, NULL);
 }
 
 static void
 _on_button_toggled (GtkToggleButton *button, gpointer data)
 {
   FrogrCreateNewSetDialog *self = NULL;
-  FrogrCreateNewSetDialogPrivate *priv = NULL;
   gboolean active = FALSE;
 
   self = FROGR_CREATE_NEW_SET_DIALOG (data);
-  priv = FROGR_CREATE_NEW_SET_DIALOG_GET_PRIVATE (self);
   active = gtk_toggle_button_get_active (button);
 
-  if (GTK_WIDGET (button) == priv->copy_to_pictures_cb)
-    priv->copy_to_pictures = active;
+  if (GTK_WIDGET (button) == self->copy_to_pictures_cb)
+    self->copy_to_pictures = active;
 }
 
 static gboolean
 _validate_dialog_data (FrogrCreateNewSetDialog *self)
 {
-  FrogrCreateNewSetDialogPrivate *priv = NULL;
   gchar *title = NULL;
   gboolean result = TRUE;
 
-  priv = FROGR_CREATE_NEW_SET_DIALOG_GET_PRIVATE (self);
-
   /* Validate set's title */
-  title = g_strdup (gtk_entry_get_text (GTK_ENTRY (priv->title_entry)));
+  title = g_strdup (gtk_entry_get_text (GTK_ENTRY (self->title_entry)));
   if ((title == NULL) || g_str_equal (g_strstrip (title), ""))
     result = FALSE;
   g_free (title);
@@ -129,22 +119,19 @@ _validate_dialog_data (FrogrCreateNewSetDialog *self)
 static gboolean
 _save_data (FrogrCreateNewSetDialog *self)
 {
-  FrogrCreateNewSetDialogPrivate *priv = NULL;
   GtkTextIter start;
   GtkTextIter end;
   gchar *title = NULL;
   gchar *description = NULL;
   gboolean result = FALSE;
 
-  priv = FROGR_CREATE_NEW_SET_DIALOG_GET_PRIVATE (self);
-
   /* Save data */
-  title = g_strdup (gtk_entry_get_text (GTK_ENTRY (priv->title_entry)));
+  title = g_strdup (gtk_entry_get_text (GTK_ENTRY (self->title_entry)));
   title = g_strstrip (title);
 
-  gtk_text_buffer_get_bounds (GTK_TEXT_BUFFER (priv->description_buffer),
+  gtk_text_buffer_get_bounds (GTK_TEXT_BUFFER (self->description_buffer),
                               &start, &end);
-  description = gtk_text_buffer_get_text (GTK_TEXT_BUFFER (priv->description_buffer),
+  description = gtk_text_buffer_get_text (GTK_TEXT_BUFFER (self->description_buffer),
                                           &start, &end, FALSE);
   description = g_strstrip (description);
 
@@ -168,14 +155,12 @@ _update_model (FrogrCreateNewSetDialog *self,
                const gchar *title,
                const gchar *description)
 {
-  FrogrCreateNewSetDialogPrivate *priv = NULL;
   FrogrController *controller = NULL;
   FrogrModel *model = NULL;
   FrogrPhotoSet *new_set = NULL;
   FrogrPicture *picture = NULL;
   GSList *item = NULL;
 
-  priv = FROGR_CREATE_NEW_SET_DIALOG_GET_PRIVATE (self);
   controller = frogr_controller_get_instance ();
   model = frogr_controller_get_model (controller);
 
@@ -184,13 +169,13 @@ _update_model (FrogrCreateNewSetDialog *self,
   frogr_model_add_local_photoset (model, new_set);
 
   /* Add the set to the list of sets for each picture */
-  for (item = priv->pictures; item; item = g_slist_next (item))
+  for (item = self->pictures; item; item = g_slist_next (item))
     {
       picture = FROGR_PICTURE (item->data);
       frogr_picture_add_photoset (picture, new_set);
 
       /* Copy album's details over pictures if requested */
-      if (priv->copy_to_pictures)
+      if (self->copy_to_pictures)
         {
           frogr_picture_set_title (picture, title);
           frogr_picture_set_description (picture, description);
@@ -241,15 +226,15 @@ _frogr_create_new_set_dialog_get_property (GObject *object,
                                            GValue *value,
                                            GParamSpec *pspec)
 {
-  FrogrCreateNewSetDialogPrivate *priv = FROGR_CREATE_NEW_SET_DIALOG_GET_PRIVATE (object);
+  FrogrCreateNewSetDialog *dialog = FROGR_CREATE_NEW_SET_DIALOG (object);
 
   switch (prop_id)
     {
     case PROP_PICTURES:
-      g_value_set_pointer (value, priv->pictures);
+      g_value_set_pointer (value, dialog->pictures);
       break;
     case PROP_PHOTOSETS:
-      g_value_set_pointer (value, priv->photosets);
+      g_value_set_pointer (value, dialog->photosets);
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -260,20 +245,20 @@ _frogr_create_new_set_dialog_get_property (GObject *object,
 static void
 _frogr_create_new_set_dialog_dispose (GObject *object)
 {
-  FrogrCreateNewSetDialogPrivate *priv = FROGR_CREATE_NEW_SET_DIALOG_GET_PRIVATE (object);
+  FrogrCreateNewSetDialog *dialog = FROGR_CREATE_NEW_SET_DIALOG (object);
 
-  if (priv->pictures)
+  if (dialog->pictures)
     {
-      g_slist_foreach (priv->pictures, (GFunc)g_object_unref, NULL);
-      g_slist_free (priv->pictures);
-      priv->pictures = NULL;
+      g_slist_foreach (dialog->pictures, (GFunc)g_object_unref, NULL);
+      g_slist_free (dialog->pictures);
+      dialog->pictures = NULL;
     }
 
-  if (priv->photosets)
+  if (dialog->photosets)
     {
-      g_slist_foreach (priv->photosets, (GFunc)g_object_unref, NULL);
-      g_slist_free (priv->photosets);
-      priv->photosets = NULL;
+      g_slist_foreach (dialog->photosets, (GFunc)g_object_unref, NULL);
+      g_slist_free (dialog->photosets);
+      dialog->photosets = NULL;
     }
 
   G_OBJECT_CLASS(frogr_create_new_set_dialog_parent_class)->dispose (object);
@@ -306,23 +291,19 @@ frogr_create_new_set_dialog_class_init (FrogrCreateNewSetDialogClass *klass)
                                 G_PARAM_READWRITE
                                 | G_PARAM_CONSTRUCT_ONLY);
   g_object_class_install_property (obj_class, PROP_PHOTOSETS, pspec);
-
-  g_type_class_add_private (obj_class, sizeof (FrogrCreateNewSetDialogPrivate));
 }
 
 static void
 frogr_create_new_set_dialog_init (FrogrCreateNewSetDialog *self)
 {
-  FrogrCreateNewSetDialogPrivate *priv = NULL;
   GtkWidget *content_area = NULL;
   GtkWidget *vbox = NULL;
   GtkWidget *grid = NULL;
   GtkWidget *scroller = NULL;
   GtkWidget *widget = NULL;
 
-  priv = FROGR_CREATE_NEW_SET_DIALOG_GET_PRIVATE (self);
-  priv->pictures = NULL;
-  priv->photosets = NULL;
+  self->pictures = NULL;
+  self->photosets = NULL;
 
   /* Create widgets */
   gtk_dialog_add_buttons (GTK_DIALOG (self),
@@ -349,7 +330,7 @@ frogr_create_new_set_dialog_init (FrogrCreateNewSetDialog *self)
   widget = gtk_entry_new ();
   gtk_widget_set_hexpand (GTK_WIDGET (widget), TRUE);
   gtk_grid_attach (GTK_GRID (grid), widget, 1, 0, 1, 1);
-  priv->title_entry = widget;
+  self->title_entry = widget;
 
   widget = gtk_label_new (_("Description:"));
   gtk_widget_set_halign (GTK_WIDGET (widget), GTK_ALIGN_END);
@@ -369,23 +350,23 @@ frogr_create_new_set_dialog_init (FrogrCreateNewSetDialog *self)
   gtk_widget_set_vexpand (GTK_WIDGET (scroller), TRUE);
   gtk_grid_attach (GTK_GRID (grid), scroller, 1, 1, 1, 1);
 
-  priv->description_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
-  priv->description_tv = widget;
+  self->description_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widget));
+  self->description_tv = widget;
 
   widget = gtk_check_button_new_with_mnemonic (_("Fill Pictures Details with Title and Description"));
   gtk_widget_set_hexpand (GTK_WIDGET (widget), TRUE);
   gtk_grid_attach (GTK_GRID (grid), widget, 1, 2, 1, 1);
-  priv->copy_to_pictures_cb = widget;
+  self->copy_to_pictures_cb = widget;
 
   gtk_container_add (GTK_CONTAINER (content_area), vbox);
 
-  g_signal_connect (G_OBJECT (priv->copy_to_pictures_cb), "toggled",
+  g_signal_connect (G_OBJECT (self->copy_to_pictures_cb), "toggled",
                     G_CALLBACK (_on_button_toggled),
                     self);
 
   gtk_dialog_set_default_response (GTK_DIALOG (self), GTK_RESPONSE_ACCEPT);
 
-  priv->copy_to_pictures = FALSE;
+  self->copy_to_pictures = FALSE;
 }
 
 /* Public API */
diff --git a/src/frogr-create-new-set-dialog.h b/src/frogr-create-new-set-dialog.h
index 588896b..6880aeb 100644
--- a/src/frogr-create-new-set-dialog.h
+++ b/src/frogr-create-new-set-dialog.h
@@ -25,27 +25,9 @@
 
 G_BEGIN_DECLS
 
-#define FROGR_TYPE_CREATE_NEW_SET_DIALOG           (frogr_create_new_set_dialog_get_type())
-#define FROGR_CREATE_NEW_SET_DIALOG(obj)           (G_TYPE_CHECK_INSTANCE_CAST(obj, 
FROGR_TYPE_CREATE_NEW_SET_DIALOG, FrogrCreateNewSetDialog))
-#define FROGR_CREATE_NEW_SET_DIALOG_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST(klass, 
FROGR_TYPE_CREATE_NEW_SET_DIALOG, FrogrCreateNewSetDialogClass))
-#define FROGR_IS_CREATE_NEW_SET_DIALOG(obj)           (G_TYPE_CHECK_INSTANCE_TYPE(obj, 
FROGR_TYPE_CREATE_NEW_SET_DIALOG))
-#define FROGR_IS_CREATE_NEW_SET_DIALOG_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE((klass), 
FROGR_TYPE_CREATE_NEW_SET_DIALOG))
-#define FROGR_CREATE_NEW_SET_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), 
FROGR_TYPE_CREATE_NEW_SET_DIALOG, FrogrCreateNewSetDialogClass))
-
-typedef struct _FrogrCreateNewSetDialog        FrogrCreateNewSetDialog;
-typedef struct _FrogrCreateNewSetDialogClass   FrogrCreateNewSetDialogClass;
-
-struct _FrogrCreateNewSetDialogClass
-{
-  GtkDialogClass parent_class;
-};
-
-struct _FrogrCreateNewSetDialog
-{
-  GtkDialog parent;
-};
-
-GType frogr_create_new_set_dialog_get_type (void) G_GNUC_CONST;
+#define FROGR_TYPE_CREATE_NEW_SET_DIALOG (frogr_create_new_set_dialog_get_type())
+
+G_DECLARE_FINAL_TYPE (FrogrCreateNewSetDialog, frogr_create_new_set_dialog, FROGR, CREATE_NEW_SET_DIALOG, 
GtkDialog)
 
 void frogr_create_new_set_dialog_show (GtkWindow *parent,
                                        const GSList *pictures,
diff --git a/src/frogr-details-dialog.c b/src/frogr-details-dialog.c
index 20db681..dba679e 100644
--- a/src/frogr-details-dialog.c
+++ b/src/frogr-details-dialog.c
@@ -42,14 +42,10 @@
 #define PICTURE_WIDTH 180
 #define PICTURE_HEIGHT 140
 
-#define FROGR_DETAILS_DIALOG_GET_PRIVATE(object)                \
-  (G_TYPE_INSTANCE_GET_PRIVATE ((object),                       \
-                                FROGR_TYPE_DETAILS_DIALOG,      \
-                                FrogrDetailsDialogPrivate))
 
-G_DEFINE_TYPE (FrogrDetailsDialog, frogr_details_dialog, GTK_TYPE_DIALOG)
+struct _FrogrDetailsDialog {
+  GtkDialog parent;
 
-typedef struct _FrogrDetailsDialogPrivate {
   GtkWidget *title_entry;
   GtkWidget *desc_tview;
   GtkWidget *tags_entry;
@@ -78,7 +74,9 @@ typedef struct _FrogrDetailsDialogPrivate {
   GSList *pictures;
   gulong picture_button_handler_id;
   gchar *reference_description;
-} FrogrDetailsDialogPrivate;
+};
+
+G_DEFINE_TYPE (FrogrDetailsDialog, frogr_details_dialog, GTK_TYPE_DIALOG)
 
 /* Properties */
 enum  {
@@ -136,15 +134,13 @@ static void _dialog_response_cb (GtkDialog *dialog, gint response, gpointer data
 static void
 _set_pictures (FrogrDetailsDialog *self, const GSList *pictures)
 {
-  FrogrDetailsDialogPrivate *priv = FROGR_DETAILS_DIALOG_GET_PRIVATE (self);
-  priv->pictures = g_slist_copy ((GSList*) pictures);
-  g_slist_foreach (priv->pictures, (GFunc)g_object_ref, NULL);
+  self->pictures = g_slist_copy ((GSList*) pictures);
+  g_slist_foreach (self->pictures, (GFunc)g_object_ref, NULL);
 }
 
 static void
 _create_widgets (FrogrDetailsDialog *self)
 {
-  FrogrDetailsDialogPrivate *priv = NULL;
   GtkWidget *main_vbox = NULL;
   GtkWidget *vbox = NULL;
   GtkWidget *hbox = NULL;
@@ -161,8 +157,6 @@ _create_widgets (FrogrDetailsDialog *self)
   gchar *markup = NULL;
   gint i;
 
-  priv = FROGR_DETAILS_DIALOG_GET_PRIVATE (self);
-
   hbox = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 18);
   gtk_widget_set_margin_bottom (hbox, 6);
 
@@ -177,21 +171,21 @@ _create_widgets (FrogrDetailsDialog *self)
   widget = gtk_button_new ();
   gtk_widget_set_tooltip_text (widget, _("Open with image viewer"));
   gtk_button_set_relief (GTK_BUTTON (widget), GTK_RELIEF_NONE);
-  priv->picture_button = widget;
+  self->picture_button = widget;
 
   picture_frame = gtk_frame_new (NULL);
   gtk_frame_set_shadow_type (GTK_FRAME (picture_frame), GTK_SHADOW_NONE);
   gtk_widget_set_halign (GTK_WIDGET (picture_frame), GTK_ALIGN_CENTER);
 
   gtk_grid_attach (GTK_GRID (grid), picture_frame, 1, 0, 1, 1);
-  priv->picture_container = picture_frame;
-  priv->picture_img = gtk_image_new ();
+  self->picture_container = picture_frame;
+  self->picture_img = gtk_image_new ();
 
   widget = gtk_label_new (NULL);
   gtk_widget_set_margin_bottom (widget, 6);
   gtk_grid_attach (GTK_GRID (grid), widget, 1, 1, 1, 1);
-  priv->mpictures_label = widget;
-  priv->mpictures_pixbuf = NULL;
+  self->mpictures_label = widget;
+  self->mpictures_pixbuf = NULL;
 
   label = gtk_label_new_with_mnemonic (_("_Title:"));
   gtk_widget_set_halign (GTK_WIDGET (label), GTK_ALIGN_END);
@@ -201,7 +195,7 @@ _create_widgets (FrogrDetailsDialog *self)
   gtk_label_set_mnemonic_widget (GTK_LABEL (label), widget);
   gtk_widget_set_hexpand (GTK_WIDGET (widget), TRUE);
   gtk_grid_attach (GTK_GRID (grid), widget, 1, 2, 1, 1);
-  priv->title_entry = widget;
+  self->title_entry = widget;
 
   label = gtk_label_new_with_mnemonic (_("_Description:"));
   gtk_widget_set_halign (GTK_WIDGET (label), GTK_ALIGN_END);
@@ -223,9 +217,9 @@ _create_widgets (FrogrDetailsDialog *self)
   gtk_widget_set_hexpand (GTK_WIDGET (scroller), TRUE);
   gtk_widget_set_vexpand (GTK_WIDGET (scroller), TRUE);
   gtk_grid_attach (GTK_GRID (grid), scroller, 1, 3, 1, 1);
-  priv->desc_tview = widget;
-  priv->text_buffer =
-    gtk_text_view_get_buffer (GTK_TEXT_VIEW (priv->desc_tview));
+  self->desc_tview = widget;
+  self->text_buffer =
+    gtk_text_view_get_buffer (GTK_TEXT_VIEW (self->desc_tview));
 
   label = gtk_label_new_with_mnemonic (_("Ta_gs:"));
   gtk_widget_set_halign (GTK_WIDGET (label), GTK_ALIGN_END);
@@ -235,7 +229,7 @@ _create_widgets (FrogrDetailsDialog *self)
   gtk_label_set_mnemonic_widget (GTK_LABEL (label), widget);
   gtk_widget_set_hexpand (GTK_WIDGET (widget), TRUE);
   gtk_grid_attach (GTK_GRID (grid), widget, 1, 4, 1, 1);
-  priv->tags_entry = widget;
+  self->tags_entry = widget;
 
   gtk_box_pack_start (GTK_BOX (vbox), grid, TRUE, TRUE, 0);
 
@@ -262,11 +256,11 @@ _create_widgets (FrogrDetailsDialog *self)
 
   widget = gtk_radio_button_new_with_mnemonic (NULL, _("_Private"));
   gtk_box_pack_start (GTK_BOX (internal_hbox), widget, FALSE, FALSE, 0);
-  priv->private_rb = widget;
+  self->private_rb = widget;
 
-  widget = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON (priv->private_rb), 
_("P_ublic"));
+  widget = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON (self->private_rb), 
_("P_ublic"));
   gtk_box_pack_start (GTK_BOX (internal_hbox), widget, FALSE, FALSE, 0);
-  priv->public_rb = widget;
+  self->public_rb = widget;
 
   gtk_box_pack_start (GTK_BOX (section_vbox), internal_hbox, FALSE, FALSE, 0);
 
@@ -275,11 +269,11 @@ _create_widgets (FrogrDetailsDialog *self)
 
   widget = gtk_check_button_new_with_mnemonic (_("_Family"));
   gtk_box_pack_start (GTK_BOX (private_hbox), widget, FALSE, FALSE, 0);
-  priv->family_cb = widget;
+  self->family_cb = widget;
 
   widget = gtk_check_button_new_with_mnemonic (_("F_riends"));
   gtk_box_pack_start (GTK_BOX (private_hbox), widget, FALSE, FALSE, 0);
-  priv->friend_cb = widget;
+  self->friend_cb = widget;
 
   gtk_box_pack_start (GTK_BOX (internal_hbox), private_hbox, FALSE, FALSE, 12);
   gtk_box_pack_start (GTK_BOX (section_vbox), internal_hbox, FALSE, FALSE, 0);
@@ -301,15 +295,15 @@ _create_widgets (FrogrDetailsDialog *self)
 
   widget = gtk_radio_button_new_with_mnemonic (NULL, _("P_hoto"));
   gtk_box_pack_start (GTK_BOX (content_type_hbox), widget, FALSE, FALSE, 0);
-  priv->photo_content_rb = widget;
+  self->photo_content_rb = widget;
 
-  widget = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON (priv->photo_content_rb), 
_("Scree_nshot"));
+  widget = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON (self->photo_content_rb), 
_("Scree_nshot"));
   gtk_box_pack_start (GTK_BOX (content_type_hbox), widget, FALSE, FALSE, 0);
-  priv->sshot_content_rb = widget;
+  self->sshot_content_rb = widget;
 
-  widget = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON (priv->photo_content_rb), 
_("Oth_er"));
+  widget = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON (self->photo_content_rb), 
_("Oth_er"));
   gtk_box_pack_start (GTK_BOX (content_type_hbox), widget, FALSE, FALSE, 0);
-  priv->other_content_rb = widget;
+  self->other_content_rb = widget;
 
   gtk_box_pack_start (GTK_BOX (section_vbox), content_type_hbox, FALSE, FALSE, 0);
   gtk_box_pack_start (GTK_BOX (vbox), section_vbox, FALSE, FALSE, 0);
@@ -330,15 +324,15 @@ _create_widgets (FrogrDetailsDialog *self)
 
   widget = gtk_radio_button_new_with_mnemonic (NULL, _("S_afe"));
   gtk_box_pack_start (GTK_BOX (safety_level_hbox), widget, FALSE, FALSE, 0);
-  priv->safe_rb = widget;
+  self->safe_rb = widget;
 
-  widget = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON (priv->safe_rb), _("_Moderate"));
+  widget = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON (self->safe_rb), _("_Moderate"));
   gtk_box_pack_start (GTK_BOX (safety_level_hbox), widget, FALSE, FALSE, 0);
-  priv->moderate_rb = widget;
+  self->moderate_rb = widget;
 
-  widget = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON (priv->safe_rb), 
_("Restr_icted"));
+  widget = gtk_radio_button_new_with_mnemonic_from_widget (GTK_RADIO_BUTTON (self->safe_rb), 
_("Restr_icted"));
   gtk_box_pack_start (GTK_BOX (safety_level_hbox), widget, FALSE, FALSE, 0);
-  priv->restricted_rb = widget;
+  self->restricted_rb = widget;
 
   gtk_box_pack_start (GTK_BOX (section_vbox), safety_level_hbox, FALSE, FALSE, 0);
   gtk_box_pack_start (GTK_BOX (vbox), section_vbox, FALSE, FALSE, 0);
@@ -360,7 +354,7 @@ _create_widgets (FrogrDetailsDialog *self)
   for (i = 0; license_descriptions[i]; i++)
     gtk_combo_box_text_insert (GTK_COMBO_BOX_TEXT (widget), i, NULL, _(license_descriptions[i]));
 
-  priv->license_cb = widget;
+  self->license_cb = widget;
 
   gtk_box_pack_start (GTK_BOX (section_vbox), widget, FALSE, FALSE, 0);
   gtk_box_pack_start (GTK_BOX (vbox), section_vbox, FALSE, FALSE, 0);
@@ -380,15 +374,15 @@ _create_widgets (FrogrDetailsDialog *self)
 
   widget = gtk_check_button_new_with_mnemonic (_("_Show Up in Global Search Results"));
   gtk_box_pack_start (GTK_BOX (section_vbox), widget, FALSE, FALSE, 0);
-  priv->show_in_search_cb = widget;
+  self->show_in_search_cb = widget;
 
   widget = gtk_check_button_new_with_mnemonic (_("Set Geo_location Information"));
   gtk_box_pack_start (GTK_BOX (section_vbox), widget, FALSE, FALSE, 0);
-  priv->send_location_cb = widget;
+  self->send_location_cb = widget;
 
   widget = gtk_check_button_new_with_mnemonic (_("Replace 'Date Posted' with 'Date Taken'"));
   gtk_box_pack_start (GTK_BOX (section_vbox), widget, FALSE, FALSE, 0);
-  priv->replace_date_posted_cb = widget;
+  self->replace_date_posted_cb = widget;
 
   gtk_box_pack_start (GTK_BOX (vbox), section_vbox, FALSE, FALSE, 0);
 
@@ -398,43 +392,43 @@ _create_widgets (FrogrDetailsDialog *self)
   gtk_box_pack_start (GTK_BOX (main_vbox), hbox, TRUE, TRUE, 0);
 
   /* Connect signals */
-  g_signal_connect (G_OBJECT (priv->public_rb), "clicked",
+  g_signal_connect (G_OBJECT (self->public_rb), "clicked",
                     G_CALLBACK (_on_radio_button_clicked), self);
 
-  g_signal_connect (G_OBJECT (priv->private_rb), "clicked",
+  g_signal_connect (G_OBJECT (self->private_rb), "clicked",
                     G_CALLBACK (_on_radio_button_clicked), self);
 
-  g_signal_connect (G_OBJECT (priv->family_cb), "toggled",
+  g_signal_connect (G_OBJECT (self->family_cb), "toggled",
                     G_CALLBACK (_on_toggle_button_toggled), self);
 
-  g_signal_connect (G_OBJECT (priv->friend_cb), "toggled",
+  g_signal_connect (G_OBJECT (self->friend_cb), "toggled",
                     G_CALLBACK (_on_toggle_button_toggled), self);
 
-  g_signal_connect (G_OBJECT (priv->show_in_search_cb), "toggled",
+  g_signal_connect (G_OBJECT (self->show_in_search_cb), "toggled",
                     G_CALLBACK (_on_toggle_button_toggled), self);
 
-  g_signal_connect (G_OBJECT (priv->send_location_cb), "toggled",
+  g_signal_connect (G_OBJECT (self->send_location_cb), "toggled",
                     G_CALLBACK (_on_toggle_button_toggled), self);
 
-  g_signal_connect (G_OBJECT (priv->replace_date_posted_cb), "toggled",
+  g_signal_connect (G_OBJECT (self->replace_date_posted_cb), "toggled",
                     G_CALLBACK (_on_toggle_button_toggled), self);
 
-  g_signal_connect (G_OBJECT (priv->photo_content_rb), "clicked",
+  g_signal_connect (G_OBJECT (self->photo_content_rb), "clicked",
                     G_CALLBACK (_on_radio_button_clicked), self);
 
-  g_signal_connect (G_OBJECT (priv->sshot_content_rb), "clicked",
+  g_signal_connect (G_OBJECT (self->sshot_content_rb), "clicked",
                     G_CALLBACK (_on_radio_button_clicked), self);
 
-  g_signal_connect (G_OBJECT (priv->other_content_rb), "clicked",
+  g_signal_connect (G_OBJECT (self->other_content_rb), "clicked",
                     G_CALLBACK (_on_radio_button_clicked), self);
 
-  g_signal_connect (G_OBJECT (priv->safe_rb), "clicked",
+  g_signal_connect (G_OBJECT (self->safe_rb), "clicked",
                     G_CALLBACK (_on_radio_button_clicked), self);
 
-  g_signal_connect (G_OBJECT (priv->moderate_rb), "clicked",
+  g_signal_connect (G_OBJECT (self->moderate_rb), "clicked",
                     G_CALLBACK (_on_radio_button_clicked), self);
 
-  g_signal_connect (G_OBJECT (priv->restricted_rb), "clicked",
+  g_signal_connect (G_OBJECT (self->restricted_rb), "clicked",
                     G_CALLBACK (_on_radio_button_clicked), self);
 
   /* Show widgets */
@@ -444,45 +438,42 @@ _create_widgets (FrogrDetailsDialog *self)
 static void
 _update_ui (FrogrDetailsDialog *self)
 {
-  FrogrDetailsDialogPrivate *priv =
-    FROGR_DETAILS_DIALOG_GET_PRIVATE (self);
   gboolean active;
 
   /* Adjust sensitiveness for check buttons */
-  active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->public_rb));
-  gtk_widget_set_sensitive (priv->friend_cb, !active);
-  gtk_widget_set_sensitive (priv->family_cb, !active);
+  active = gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->public_rb));
+  gtk_widget_set_sensitive (self->friend_cb, !active);
+  gtk_widget_set_sensitive (self->family_cb, !active);
 }
 
 static void
 _load_picture_from_disk (FrogrDetailsDialog *self)
 {
-  FrogrDetailsDialogPrivate *priv = FROGR_DETAILS_DIALOG_GET_PRIVATE (self);
   guint n_pictures;
 
-  n_pictures = g_slist_length (priv->pictures);
+  n_pictures = g_slist_length (self->pictures);
   if (n_pictures > 1)
     {
       gchar *mpictures_str = NULL;
 
       /* Get the 'multiple pictures pixbuf' if not got yet (lazy approach) */
-      if (!priv->mpictures_pixbuf)
+      if (!self->mpictures_pixbuf)
         {
           gchar *mpictures_full_path = NULL;
 
           /* Set the image for editing multiple pictures */
           mpictures_full_path = g_strdup_printf ("%s/" MPICTURES_IMAGE,
                                                  frogr_util_get_app_data_dir ());
-          priv->mpictures_pixbuf = gdk_pixbuf_new_from_file (mpictures_full_path, NULL);
+          self->mpictures_pixbuf = gdk_pixbuf_new_from_file (mpictures_full_path, NULL);
           g_free (mpictures_full_path);
         }
 
       /* Just set the pixbuf in the image */
-      gtk_image_set_from_pixbuf (GTK_IMAGE (priv->picture_img), priv->mpictures_pixbuf);
+      gtk_image_set_from_pixbuf (GTK_IMAGE (self->picture_img), self->mpictures_pixbuf);
 
       /* Visually indicate how many pictures are being edited */
       mpictures_str = g_strdup_printf (ngettext ("(%d Picture)", "(%d Pictures)", n_pictures), n_pictures);
-      gtk_label_set_text (GTK_LABEL (priv->mpictures_label), mpictures_str);
+      gtk_label_set_text (GTK_LABEL (self->mpictures_label), mpictures_str);
       g_free (mpictures_str);
 
       /* No need to spawn any async operation, show the dialog now */
@@ -494,7 +485,7 @@ _load_picture_from_disk (FrogrDetailsDialog *self)
       gchar *file_uri = NULL;
       GFile *gfile = NULL;
 
-      picture = FROGR_PICTURE (priv->pictures->data);
+      picture = FROGR_PICTURE (self->pictures->data);
       file_uri = (gchar *)frogr_picture_get_fileuri (picture);
       gfile = g_file_new_for_uri (file_uri);
 
@@ -509,7 +500,6 @@ _load_picture_from_disk_cb (GObject *object,
                             gpointer data)
 {
   FrogrDetailsDialog *self = FROGR_DETAILS_DIALOG (data);
-  FrogrDetailsDialogPrivate *priv = FROGR_DETAILS_DIALOG_GET_PRIVATE (self);
   GFile *file = NULL;
   GError *error = NULL;
   gchar *contents = NULL;
@@ -521,7 +511,7 @@ _load_picture_from_disk_cb (GObject *object,
       FrogrPicture *picture = NULL;
       GdkPixbuf *pixbuf = NULL;
 
-      picture = FROGR_PICTURE (priv->pictures->data);
+      picture = FROGR_PICTURE (self->pictures->data);
       if (frogr_picture_is_video (picture))
         pixbuf = frogr_util_get_pixbuf_for_video_file (file, PICTURE_WIDTH, PICTURE_HEIGHT, &error);
       else
@@ -530,7 +520,7 @@ _load_picture_from_disk_cb (GObject *object,
 
       if (pixbuf)
         {
-          gtk_image_set_from_pixbuf (GTK_IMAGE (priv->picture_img), pixbuf);
+          gtk_image_set_from_pixbuf (GTK_IMAGE (self->picture_img), pixbuf);
           g_object_unref (pixbuf);
         }
 
@@ -565,16 +555,14 @@ _load_picture_from_disk_cb (GObject *object,
 static void
 _place_picture_in_dialog_and_show (FrogrDetailsDialog *self)
 {
-  FrogrDetailsDialogPrivate *priv = FROGR_DETAILS_DIALOG_GET_PRIVATE (self);
-
-  gtk_button_set_image (GTK_BUTTON (priv->picture_button),
-                        priv->picture_img);
+  gtk_button_set_image (GTK_BUTTON (self->picture_button),
+                        self->picture_img);
 
-  gtk_container_add (GTK_CONTAINER (priv->picture_container),
-                     priv->picture_button);
+  gtk_container_add (GTK_CONTAINER (self->picture_container),
+                     self->picture_button);
 
-  priv->picture_button_handler_id =
-    g_signal_connect (G_OBJECT (priv->picture_button), "clicked",
+  self->picture_button_handler_id =
+    g_signal_connect (G_OBJECT (self->picture_button), "clicked",
                       G_CALLBACK (_on_picture_button_clicked),
                       self);
 
@@ -584,9 +572,6 @@ _place_picture_in_dialog_and_show (FrogrDetailsDialog *self)
 static void
 _fill_dialog_with_data (FrogrDetailsDialog *self)
 {
-  FrogrDetailsDialogPrivate *priv =
-    FROGR_DETAILS_DIALOG_GET_PRIVATE (self);
-
   FrogrPicture *picture;
   GSList *item;
   GtkWidget *picture_widget;
@@ -605,7 +590,7 @@ _fill_dialog_with_data (FrogrDetailsDialog *self)
   FspContentType content_type_val = FSP_CONTENT_TYPE_NONE;
 
   /* Take first element values */
-  item = priv->pictures;
+  item = self->pictures;
   picture = FROGR_PICTURE (item->data);
 
   title_val = (gchar *)frogr_picture_get_title (picture);
@@ -680,39 +665,39 @@ _fill_dialog_with_data (FrogrDetailsDialog *self)
         tags_val = NULL;
 
       /* Check radio and check buttons consistence */
-      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->public_rb)))
+      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->public_rb)))
         {
-          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (priv->public_rb),
+          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (self->public_rb),
                                               is_public_val != is_public);
         }
-      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->private_rb)))
+      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->private_rb)))
         {
-          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (priv->private_rb),
+          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (self->private_rb),
                                               is_public_val != is_public);
         }
-      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->family_cb)))
+      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->family_cb)))
         {
-          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (priv->family_cb),
+          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (self->family_cb),
                                               is_family_val != is_family);
         }
-      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->friend_cb)))
+      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->friend_cb)))
         {
-          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (priv->friend_cb),
+          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (self->friend_cb),
                                               is_friend_val != is_friend);
         }
-      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->show_in_search_cb)))
+      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->show_in_search_cb)))
         {
-          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (priv->show_in_search_cb),
+          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (self->show_in_search_cb),
                                               show_in_search_val != show_in_search);
         }
-      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->send_location_cb)))
+      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->send_location_cb)))
         {
-          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (priv->send_location_cb),
+          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (self->send_location_cb),
                                               send_location_val != send_location);
         }
-      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->replace_date_posted_cb)))
+      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->replace_date_posted_cb)))
         {
-          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (priv->replace_date_posted_cb),
+          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (self->replace_date_posted_cb),
                                               replace_date_posted_val != replace_date_posted);
         }
 
@@ -721,39 +706,39 @@ _fill_dialog_with_data (FrogrDetailsDialog *self)
           license_inconsistent = TRUE;
         }
 
-      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->photo_content_rb)))
+      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->photo_content_rb)))
         {
-          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (priv->photo_content_rb),
+          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (self->photo_content_rb),
                                               content_type_val != content_type);
         }
-      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->photo_content_rb)))
+      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->photo_content_rb)))
         {
-          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (priv->photo_content_rb),
+          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (self->photo_content_rb),
                                               content_type_val != content_type);
         }
-      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->sshot_content_rb)))
+      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->sshot_content_rb)))
         {
-          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (priv->sshot_content_rb),
+          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (self->sshot_content_rb),
                                               content_type_val != content_type);
         }
-      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->other_content_rb)))
+      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->other_content_rb)))
         {
-          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (priv->other_content_rb),
+          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (self->other_content_rb),
                                               content_type_val != content_type);
         }
-      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->safe_rb)))
+      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->safe_rb)))
         {
-          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (priv->safe_rb),
+          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (self->safe_rb),
                                               safety_level_val != safety_level);
         }
-      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->moderate_rb)))
+      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->moderate_rb)))
         {
-          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (priv->moderate_rb),
+          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (self->moderate_rb),
                                               safety_level_val != safety_level);
         }
-      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->restricted_rb)))
+      if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->restricted_rb)))
         {
-          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (priv->restricted_rb),
+          gtk_toggle_button_set_inconsistent (GTK_TOGGLE_BUTTON (self->restricted_rb),
                                               safety_level_val != safety_level);
         }
 
@@ -772,81 +757,81 @@ _fill_dialog_with_data (FrogrDetailsDialog *self)
   /* Fill in with data */
 
   if (title_val != NULL)
-    gtk_entry_set_text (GTK_ENTRY (priv->title_entry), title_val);
+    gtk_entry_set_text (GTK_ENTRY (self->title_entry), title_val);
 
   if (desc_val != NULL)
     {
-      gtk_text_buffer_set_text (GTK_TEXT_BUFFER (priv->text_buffer), desc_val, -1);
-      priv->reference_description = g_strstrip (g_strdup (desc_val));
+      gtk_text_buffer_set_text (GTK_TEXT_BUFFER (self->text_buffer), desc_val, -1);
+      self->reference_description = g_strstrip (g_strdup (desc_val));
     }
   else
     {
       /* We store "" in this case for ease further comparisons. */
-      priv->reference_description = g_strdup ("");
+      self->reference_description = g_strdup ("");
     }
 
   if (tags_val != NULL)
-    gtk_entry_set_text (GTK_ENTRY (priv->tags_entry), tags_val);
+    gtk_entry_set_text (GTK_ENTRY (self->tags_entry), tags_val);
 
-  if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->public_rb)))
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->public_rb), is_public_val);
-  if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->private_rb)))
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->private_rb), !is_public_val);
+  if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->public_rb)))
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->public_rb), is_public_val);
+  if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->private_rb)))
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->private_rb), !is_public_val);
 
-  if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->friend_cb)))
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->friend_cb), is_friend_val);
-  if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->family_cb)))
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->family_cb), is_family_val);
+  if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->friend_cb)))
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->friend_cb), is_friend_val);
+  if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->family_cb)))
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->family_cb), is_family_val);
 
-  if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->show_in_search_cb)))
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->show_in_search_cb), show_in_search_val);
-  if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->send_location_cb)))
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->send_location_cb), send_location_val);
-  if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->replace_date_posted_cb)))
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->replace_date_posted_cb), replace_date_posted_val);
+  if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->show_in_search_cb)))
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->show_in_search_cb), show_in_search_val);
+  if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->send_location_cb)))
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->send_location_cb), send_location_val);
+  if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->replace_date_posted_cb)))
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->replace_date_posted_cb), replace_date_posted_val);
 
   if (license_inconsistent)
-    gtk_combo_box_set_active (GTK_COMBO_BOX (priv->license_cb), FSP_LICENSE_LAST + 1);
+    gtk_combo_box_set_active (GTK_COMBO_BOX (self->license_cb), FSP_LICENSE_LAST + 1);
   else
-    gtk_combo_box_set_active (GTK_COMBO_BOX (priv->license_cb), license_val + 1);
+    gtk_combo_box_set_active (GTK_COMBO_BOX (self->license_cb), license_val + 1);
 
   if (content_type_val == FSP_CONTENT_TYPE_SCREENSHOT
-      && !gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->sshot_content_rb)))
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->sshot_content_rb), TRUE);
+      && !gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->sshot_content_rb)))
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->sshot_content_rb), TRUE);
   else if (content_type_val == FSP_CONTENT_TYPE_OTHER
-      && !gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->other_content_rb)))
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->other_content_rb), TRUE);
-  else if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->photo_content_rb)))
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->photo_content_rb), TRUE);
+      && !gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->other_content_rb)))
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->other_content_rb), TRUE);
+  else if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->photo_content_rb)))
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->photo_content_rb), TRUE);
 
   if (safety_level_val == FSP_SAFETY_LEVEL_MODERATE
-      && !gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->moderate_rb)))
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->moderate_rb), TRUE);
+      && !gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->moderate_rb)))
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->moderate_rb), TRUE);
   else if (safety_level_val == FSP_SAFETY_LEVEL_RESTRICTED
-      && !gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->restricted_rb)))
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->restricted_rb), TRUE);
-  else if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->safe_rb)))
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->safe_rb), TRUE);
+      && !gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->restricted_rb)))
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->restricted_rb), TRUE);
+  else if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->safe_rb)))
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->safe_rb), TRUE);
 
-  picture_widget = gtk_bin_get_child (GTK_BIN (priv->picture_container));
+  picture_widget = gtk_bin_get_child (GTK_BIN (self->picture_container));
   if (picture_widget)
     {
-      gtk_container_remove (GTK_CONTAINER (priv->picture_container),
+      gtk_container_remove (GTK_CONTAINER (self->picture_container),
                             picture_widget);
     }
 
-  if (priv->picture_button_handler_id)
+  if (self->picture_button_handler_id)
     {
-      g_signal_handler_disconnect (priv->picture_button,
-                                   priv->picture_button_handler_id);
+      g_signal_handler_disconnect (self->picture_button,
+                                   self->picture_button_handler_id);
     }
 
   /* Update UI */
   _update_ui (self);
 
   /* Initial widget to grab focus */
-  gtk_widget_grab_focus (priv->title_entry);
-  gtk_editable_set_position (GTK_EDITABLE (priv->title_entry), -1);
+  gtk_widget_grab_focus (self->title_entry);
+  gtk_editable_set_position (GTK_EDITABLE (self->title_entry), -1);
 
   /* Load the picture from disk, asynchronously */
   _load_picture_from_disk (self);
@@ -855,16 +840,13 @@ _fill_dialog_with_data (FrogrDetailsDialog *self)
 static gboolean
 _validate_dialog_data (FrogrDetailsDialog *self)
 {
-  FrogrDetailsDialogPrivate *priv =
-    FROGR_DETAILS_DIALOG_GET_PRIVATE (self);
-
   gboolean result = TRUE;
 
   /* Mandatory fields (only if editing a single picture) */
-  if (g_slist_length (priv->pictures) <= 1)
+  if (g_slist_length (self->pictures) <= 1)
     {
       gchar *title =
-        g_strdup (gtk_entry_get_text (GTK_ENTRY (priv->title_entry)));
+        g_strdup (gtk_entry_get_text (GTK_ENTRY (self->title_entry)));
 
       if ((title == NULL) || g_str_equal (g_strstrip (title), ""))
         result = FALSE;
@@ -879,9 +861,6 @@ _validate_dialog_data (FrogrDetailsDialog *self)
 static gboolean
 _save_data (FrogrDetailsDialog *self)
 {
-  FrogrDetailsDialogPrivate *priv =
-    FROGR_DETAILS_DIALOG_GET_PRIVATE (self);
-
   GtkTextIter start;
   GtkTextIter end;
   gchar *title = NULL;
@@ -899,27 +878,27 @@ _save_data (FrogrDetailsDialog *self)
   gboolean result = FALSE;
 
   /* Save data */
-  title = g_strdup (gtk_entry_get_text (GTK_ENTRY (priv->title_entry)));
+  title = g_strdup (gtk_entry_get_text (GTK_ENTRY (self->title_entry)));
   title = g_strstrip (title);
 
-  gtk_text_buffer_get_bounds (GTK_TEXT_BUFFER (priv->text_buffer),
+  gtk_text_buffer_get_bounds (GTK_TEXT_BUFFER (self->text_buffer),
                               &start, &end);
-  description = gtk_text_buffer_get_text (GTK_TEXT_BUFFER (priv->text_buffer),
+  description = gtk_text_buffer_get_text (GTK_TEXT_BUFFER (self->text_buffer),
                                           &start, &end, FALSE);
   description = g_strstrip (description);
 
-  tags = g_strdup (gtk_entry_get_text (GTK_ENTRY (priv->tags_entry)));
+  tags = g_strdup (gtk_entry_get_text (GTK_ENTRY (self->tags_entry)));
   tags = g_strstrip (tags);
 
   is_public =
-    gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->public_rb));
+    gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->public_rb));
 
   if (!is_public)
     {
       is_friend =
-        gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->friend_cb));
+        gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->friend_cb));
       is_family =
-        gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->family_cb));
+        gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->family_cb));
     }
   else
     {
@@ -929,27 +908,27 @@ _save_data (FrogrDetailsDialog *self)
     }
 
   show_in_search =
-    gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->show_in_search_cb));
+    gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->show_in_search_cb));
   send_location =
-    gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->send_location_cb));
+    gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->send_location_cb));
   replace_date_posted =
-    gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->replace_date_posted_cb));
+    gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->replace_date_posted_cb));
 
   /* License type (values in the combo are shifted +1) */
-  license = gtk_combo_box_get_active (GTK_COMBO_BOX (priv->license_cb)) - 1;
+  license = gtk_combo_box_get_active (GTK_COMBO_BOX (self->license_cb)) - 1;
 
   /* Content type */
-  if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->photo_content_rb)))
+  if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->photo_content_rb)))
     content_type = FSP_CONTENT_TYPE_PHOTO;
-  else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->sshot_content_rb)))
+  else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->sshot_content_rb)))
     content_type = FSP_CONTENT_TYPE_SCREENSHOT;
   else
     content_type = FSP_CONTENT_TYPE_OTHER;
 
   /* Safety level */
-  if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->safe_rb)))
+  if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->safe_rb)))
     safety_level = FSP_SAFETY_LEVEL_SAFE;
-  else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (priv->moderate_rb)))
+  else if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (self->moderate_rb)))
     safety_level = FSP_SAFETY_LEVEL_MODERATE;
   else
     safety_level = FSP_SAFETY_LEVEL_RESTRICTED;
@@ -965,44 +944,44 @@ _save_data (FrogrDetailsDialog *self)
       model = frogr_controller_get_model (frogr_controller_get_instance ());
 
       /* Iterate over the rest of elements */
-      n_pictures = g_slist_length (priv->pictures);
-      for (item = priv->pictures; item; item = g_slist_next (item))
+      n_pictures = g_slist_length (self->pictures);
+      for (item = self->pictures; item; item = g_slist_next (item))
         {
           picture = FROGR_PICTURE (item->data);
 
           if (!g_str_equal (title, "") || (n_pictures <= 1))
             frogr_picture_set_title (picture, title);
 
-          if (!g_str_equal (description, priv->reference_description))
+          if (!g_str_equal (description, self->reference_description))
             frogr_picture_set_description (picture, description);
 
           if (!g_str_equal (tags, "") || (n_pictures <= 1))
             frogr_picture_set_tags (picture, tags);
 
-          if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->public_rb)))
+          if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->public_rb)))
             frogr_picture_set_public (picture, is_public);
-          if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->friend_cb)))
+          if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->friend_cb)))
             frogr_picture_set_friend (picture, is_friend);
-          if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->family_cb)))
+          if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->family_cb)))
             frogr_picture_set_family (picture, is_family);
-          if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->show_in_search_cb)))
+          if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->show_in_search_cb)))
             frogr_picture_set_show_in_search (picture, show_in_search);
-          if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->send_location_cb)))
+          if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->send_location_cb)))
             frogr_picture_set_send_location (picture, send_location);
-          if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->replace_date_posted_cb)))
+          if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->replace_date_posted_cb)))
             frogr_picture_set_replace_date_posted (picture, replace_date_posted);
 
           if (license >= FSP_LICENSE_NONE && license < FSP_LICENSE_LAST)
             frogr_picture_set_license (picture, license);
 
-          if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->photo_content_rb))
-              && !gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->sshot_content_rb))
-              && !gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->other_content_rb)))
+          if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->photo_content_rb))
+              && !gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->sshot_content_rb))
+              && !gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->other_content_rb)))
             frogr_picture_set_content_type (picture, content_type);
 
-          if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->safe_rb))
-              && !gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->moderate_rb))
-              && !gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (priv->restricted_rb)))
+          if (!gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->safe_rb))
+              && !gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->moderate_rb))
+              && !gtk_toggle_button_get_inconsistent (GTK_TOGGLE_BUTTON (self->restricted_rb)))
             frogr_picture_set_safety_level (picture, safety_level);
 
           /* Everything went fine */
@@ -1059,7 +1038,6 @@ static void
 _on_toggle_button_toggled (GtkToggleButton *tbutton, gpointer data)
 {
   FrogrDetailsDialog *self = FROGR_DETAILS_DIALOG (data);
-
   /* Reset consistence and update UI */
   gtk_toggle_button_set_inconsistent (tbutton, FALSE);
   _update_ui (self);
@@ -1068,8 +1046,8 @@ _on_toggle_button_toggled (GtkToggleButton *tbutton, gpointer data)
 static void
 _on_picture_button_clicked (GtkButton *button, gpointer data)
 {
-  FrogrDetailsDialogPrivate *priv = FROGR_DETAILS_DIALOG_GET_PRIVATE (data);
-  frogr_util_open_pictures_in_viewer (priv->pictures);
+  FrogrDetailsDialog *self = FROGR_DETAILS_DIALOG (data);
+  frogr_util_open_pictures_in_viewer (self->pictures);
 }
 
 static void
@@ -1111,12 +1089,12 @@ _frogr_details_dialog_get_property (GObject *object,
                                     GValue *value,
                                     GParamSpec *pspec)
 {
-  FrogrDetailsDialogPrivate *priv = FROGR_DETAILS_DIALOG_GET_PRIVATE (object);
+  FrogrDetailsDialog *dialog = FROGR_DETAILS_DIALOG (object);
 
   switch (prop_id)
     {
     case PROP_PICTURES:
-      g_value_set_pointer (value, priv->pictures);
+      g_value_set_pointer (value, dialog->pictures);
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -1127,19 +1105,19 @@ _frogr_details_dialog_get_property (GObject *object,
 static void
 _frogr_details_dialog_dispose (GObject *object)
 {
-  FrogrDetailsDialogPrivate *priv = FROGR_DETAILS_DIALOG_GET_PRIVATE (object);
+  FrogrDetailsDialog *dialog = FROGR_DETAILS_DIALOG (object);
 
-  if (priv->mpictures_pixbuf)
+  if (dialog->mpictures_pixbuf)
     {
-      g_object_unref (priv->mpictures_pixbuf);
-      priv->mpictures_pixbuf = NULL;
+      g_object_unref (dialog->mpictures_pixbuf);
+      dialog->mpictures_pixbuf = NULL;
     }
 
-  if (priv->pictures)
+  if (dialog->pictures)
     {
-      g_slist_foreach (priv->pictures, (GFunc)g_object_unref, NULL);
-      g_slist_free (priv->pictures);
-      priv->pictures = NULL;
+      g_slist_foreach (dialog->pictures, (GFunc)g_object_unref, NULL);
+      g_slist_free (dialog->pictures);
+      dialog->pictures = NULL;
     }
 
   G_OBJECT_CLASS(frogr_details_dialog_parent_class)->dispose (object);
@@ -1148,9 +1126,9 @@ _frogr_details_dialog_dispose (GObject *object)
 static void
 _frogr_details_dialog_finalize (GObject *object)
 {
-  FrogrDetailsDialogPrivate *priv = FROGR_DETAILS_DIALOG_GET_PRIVATE (object);
+  FrogrDetailsDialog *dialog = FROGR_DETAILS_DIALOG (object);
 
-  g_free (priv->reference_description);
+  g_free (dialog->reference_description);
 
   G_OBJECT_CLASS(frogr_details_dialog_parent_class)->finalize (object);
 }
@@ -1175,19 +1153,14 @@ frogr_details_dialog_class_init (FrogrDetailsDialogClass *klass)
                                 G_PARAM_READWRITE
                                 | G_PARAM_CONSTRUCT_ONLY);
   g_object_class_install_property (obj_class, PROP_PICTURES, pspec);
-
-  g_type_class_add_private (obj_class, sizeof (FrogrDetailsDialogPrivate));
 }
 
 static void
 frogr_details_dialog_init (FrogrDetailsDialog *self)
 {
-  FrogrDetailsDialogPrivate *priv =
-    FROGR_DETAILS_DIALOG_GET_PRIVATE (self);
-
-  priv->pictures = NULL;
-  priv->picture_button_handler_id = 0;
-  priv->reference_description = NULL;
+  self->pictures = NULL;
+  self->picture_button_handler_id = 0;
+  self->reference_description = NULL;
 
   _create_widgets (self);
 
@@ -1234,8 +1207,7 @@ frogr_details_dialog_show (GtkWindow *parent,
   config = frogr_config_get_instance ();
   if (config && frogr_config_get_tags_autocompletion (config))
     {
-      FrogrDetailsDialogPrivate *priv = NULL;
-      priv = FROGR_DETAILS_DIALOG_GET_PRIVATE (new);
-      frogr_live_entry_set_auto_completion (FROGR_LIVE_ENTRY (priv->tags_entry), tags);
+      FrogrDetailsDialog *dialog = FROGR_DETAILS_DIALOG (new);
+      frogr_live_entry_set_auto_completion (FROGR_LIVE_ENTRY (dialog->tags_entry), tags);
     }
 }
diff --git a/src/frogr-details-dialog.h b/src/frogr-details-dialog.h
index 73a617e..944e89e 100644
--- a/src/frogr-details-dialog.h
+++ b/src/frogr-details-dialog.h
@@ -25,27 +25,9 @@
 
 G_BEGIN_DECLS
 
-#define FROGR_TYPE_DETAILS_DIALOG           (frogr_details_dialog_get_type())
-#define FROGR_DETAILS_DIALOG(obj)           (G_TYPE_CHECK_INSTANCE_CAST(obj, FROGR_TYPE_DETAILS_DIALOG, 
FrogrDetailsDialog))
-#define FROGR_DETAILS_DIALOG_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST(klass, FROGR_TYPE_DETAILS_DIALOG, 
FrogrDetailsDialogClass))
-#define FROGR_IS_DETAILS_DIALOG(obj)           (G_TYPE_CHECK_INSTANCE_TYPE(obj, FROGR_TYPE_DETAILS_DIALOG))
-#define FROGR_IS_DETAILS_DIALOG_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE((klass), FROGR_TYPE_DETAILS_DIALOG))
-#define FROGR_DETAILS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FROGR_TYPE_DETAILS_DIALOG, 
FrogrDetailsDialogClass))
-
-typedef struct _FrogrDetailsDialog        FrogrDetailsDialog;
-typedef struct _FrogrDetailsDialogClass   FrogrDetailsDialogClass;
-
-struct _FrogrDetailsDialogClass
-{
-  GtkDialogClass parent_class;
-};
-
-struct _FrogrDetailsDialog
-{
-  GtkDialog parent;
-};
-
-GType frogr_details_dialog_get_type (void) G_GNUC_CONST;
+#define FROGR_TYPE_DETAILS_DIALOG (frogr_details_dialog_get_type())
+
+G_DECLARE_FINAL_TYPE (FrogrDetailsDialog, frogr_details_dialog, FROGR, DETAILS_DIALOG, GtkDialog)
 
 void frogr_details_dialog_show (GtkWindow *parent,
                                 const GSList *pictures,
diff --git a/src/frogr-file-loader.c b/src/frogr-file-loader.c
index e8f1b94..331b67d 100644
--- a/src/frogr-file-loader.c
+++ b/src/frogr-file-loader.c
@@ -44,22 +44,17 @@
 #include <glib/gi18n.h>
 #include <gio/gio.h>
 
-#define FROGR_FILE_LOADER_GET_PRIVATE(object)                   \
-  (G_TYPE_INSTANCE_GET_PRIVATE ((object),                       \
-                                FROGR_TYPE_FILE_LOADER,         \
-                                FrogrFileLoaderPrivate))
-
-G_DEFINE_TYPE (FrogrFileLoader, frogr_file_loader, G_TYPE_OBJECT)
 
 typedef enum {
   LOADING_MODE_FROM_URIS,
   LOADING_MODE_FROM_PICTURES,
 } LoadingMode;
 
-/* Private struct */
-typedef struct _FrogrFileLoaderPrivate FrogrFileLoaderPrivate;
-struct _FrogrFileLoaderPrivate
+
+struct _FrogrFileLoader
 {
+  GObject parent;
+
   FrogrController *controller;
   FrogrMainView *mainview;
 
@@ -89,6 +84,8 @@ struct _FrogrFileLoaderPrivate
   FspContentType content_type;
 };
 
+G_DEFINE_TYPE (FrogrFileLoader, frogr_file_loader, G_TYPE_OBJECT)
+
 /* Signals */
 enum {
   FILE_LOADED,
@@ -138,17 +135,14 @@ static void _finish_task_and_self_destruct (FrogrFileLoader *self);
 static void
 _update_status_and_progress (FrogrFileLoader *self)
 {
-  FrogrFileLoaderPrivate *priv =
-    FROGR_FILE_LOADER_GET_PRIVATE (self);
-
   gchar *status_text = NULL;
 
   /* Update progress */
-  if (priv->current_uri || priv->current_picture)
+  if (self->current_uri || self->current_picture)
     status_text = g_strdup_printf (_("Loading files %d / %d"),
-                                   priv->index, priv->n_files);
+                                   self->index, self->n_files);
 
-  frogr_main_view_set_status_text (priv->mainview, status_text);
+  frogr_main_view_set_status_text (self->mainview, status_text);
 
   /* Free */
   g_free (status_text);
@@ -157,31 +151,26 @@ _update_status_and_progress (FrogrFileLoader *self)
 static void
 _advance_to_next_file (FrogrFileLoader *self)
 {
-  FrogrFileLoaderPrivate *priv =
-    FROGR_FILE_LOADER_GET_PRIVATE (self);
-
   /* update internal status and check the next file */
-  if (priv->loading_mode == LOADING_MODE_FROM_PICTURES)
-    priv->current_picture = g_slist_next (priv->current_picture);
+  if (self->loading_mode == LOADING_MODE_FROM_PICTURES)
+    self->current_picture = g_slist_next (self->current_picture);
   else
-    priv->current_uri = g_slist_next (priv->current_uri);
+    self->current_uri = g_slist_next (self->current_uri);
 
-  priv->index++;
+  self->index++;
 }
 
 static void
 _load_current_file (FrogrFileLoader *self)
 {
-  FrogrFileLoaderPrivate *priv =
-    FROGR_FILE_LOADER_GET_PRIVATE (self);
   const gchar *file_uri = NULL;
 
   /* Get the uri for the file first */
-  if (priv->loading_mode == LOADING_MODE_FROM_URIS && priv->current_uri)
-    file_uri = (const gchar *)priv->current_uri->data;
-  else if (priv->current_picture)
+  if (self->loading_mode == LOADING_MODE_FROM_URIS && self->current_uri)
+    file_uri = (const gchar *)self->current_uri->data;
+  else if (self->current_picture)
     {
-      FrogrPicture *picture = FROGR_PICTURE (priv->current_picture->data);
+      FrogrPicture *picture = FROGR_PICTURE (self->current_picture->data);
       file_uri = frogr_picture_get_fileuri (picture);
     }
 
@@ -254,7 +243,6 @@ _load_current_file_cb (GObject *object,
                        gpointer data)
 {
   FrogrFileLoader *self = NULL;
-  FrogrFileLoaderPrivate *priv = NULL;
   FrogrPicture *picture = NULL;
   GFile *file = NULL;
   GError *error = NULL;
@@ -262,8 +250,7 @@ _load_current_file_cb (GObject *object,
   gsize length = 0;
   gboolean keep_going = FALSE;
 
-  self = FROGR_FILE_LOADER (data);;
-  priv = FROGR_FILE_LOADER_GET_PRIVATE (self);
+  self = FROGR_FILE_LOADER (data);
 
   file = G_FILE (object);
   if (g_file_load_contents_finish (file, res, &contents, &length, NULL, &error))
@@ -280,10 +267,10 @@ _load_current_file_cb (GObject *object,
 
       if (pixbuf)
        {
-         if (priv->loading_mode == LOADING_MODE_FROM_PICTURES)
+         if (self->loading_mode == LOADING_MODE_FROM_PICTURES)
            {
              /* Just update the picture if we are not loading from URIs */
-             picture = FROGR_PICTURE (priv->current_picture->data);
+             picture = FROGR_PICTURE (self->current_picture->data);
              frogr_picture_set_pixbuf (picture, pixbuf);
            }
          else
@@ -324,7 +311,7 @@ _load_current_file_cb (GObject *object,
         g_signal_emit (self, signals[FILE_LOADED], 0, picture);
 
       /* We only unref the picture if it was created here */
-      if (priv->loading_mode != LOADING_MODE_FROM_PICTURES)
+      if (self->loading_mode != LOADING_MODE_FROM_PICTURES)
         g_object_unref (picture);
     }
 
@@ -382,7 +369,7 @@ _try_get_pixbuf_for_image (FrogrFileLoader *self,
       msg = g_strdup_printf (_("Unable to load picture %s:\n%s"), file_name, error->message);
       g_free (file_name);
 
-      frogr_util_show_error_dialog (GTK_WINDOW (FROGR_FILE_LOADER_GET_PRIVATE (self)->mainview), msg);
+      frogr_util_show_error_dialog (GTK_WINDOW (self->mainview), msg);
       g_free (msg);
 
       g_error_free (error);
@@ -414,7 +401,7 @@ _try_get_pixbuf_for_video (FrogrFileLoader *self,
                               "Please check that you have the right codec installed"), file_name);
       g_free (file_name);
 
-      frogr_util_show_error_dialog (GTK_WINDOW (FROGR_FILE_LOADER_GET_PRIVATE (self)->mainview), msg);
+      frogr_util_show_error_dialog (GTK_WINDOW (self->mainview), msg);
       g_free (msg);
 
       if (error)
@@ -501,7 +488,6 @@ get_location_from_exif (ExifData *exif_data)
 static FrogrPicture*
 _create_new_picture (FrogrFileLoader *self, GFile *file, GdkPixbuf *pixbuf, gboolean is_video)
 {
-  FrogrFileLoaderPrivate *priv = NULL;
   FrogrPicture *picture = NULL;
   GFileInfo* file_info = NULL;
   gchar *file_name = NULL;
@@ -529,9 +515,7 @@ _create_new_picture (FrogrFileLoader *self, GFile *file, GdkPixbuf *pixbuf, gboo
       file_name = g_file_get_basename (file);
     }
 
-  priv = FROGR_FILE_LOADER_GET_PRIVATE (self);
-
-  if (!priv->keep_file_extensions)
+  if (!self->keep_file_extensions)
     {
       gchar *extension_dot = NULL;
 
@@ -545,17 +529,17 @@ _create_new_picture (FrogrFileLoader *self, GFile *file, GdkPixbuf *pixbuf, gboo
   file_uri = g_file_get_uri (file);
   picture = frogr_picture_new (file_uri,
                                 file_name,
-                                priv->public_visibility,
-                                priv->family_visibility,
-                                priv->friend_visibility,
+                                self->public_visibility,
+                                self->family_visibility,
+                                self->friend_visibility,
                                 is_video);
 
-  frogr_picture_set_show_in_search (picture, priv->show_in_search);
-  frogr_picture_set_send_location (picture, priv->send_location);
-  frogr_picture_set_replace_date_posted (picture, priv->replace_date_posted);
-  frogr_picture_set_license (picture, priv->license);
-  frogr_picture_set_content_type (picture, priv->content_type);
-  frogr_picture_set_safety_level (picture, priv->safety_level);
+  frogr_picture_set_show_in_search (picture, self->show_in_search);
+  frogr_picture_set_send_location (picture, self->send_location);
+  frogr_picture_set_replace_date_posted (picture, self->replace_date_posted);
+  frogr_picture_set_license (picture, self->license);
+  frogr_picture_set_content_type (picture, self->content_type);
+  frogr_picture_set_safety_level (picture, self->safety_level);
   frogr_picture_set_pixbuf (picture, pixbuf);
 
   /* FrogrPicture stores the size in KB */
@@ -606,7 +590,7 @@ _update_picture_with_exif_data (FrogrFileLoader *self,
         }
 
       /* Import tags from XMP metadata, if required */
-      if (FROGR_FILE_LOADER_GET_PRIVATE (self)->import_tags)
+      if (self->import_tags)
         {
           gchar *imported_tags = NULL;
 
@@ -635,13 +619,11 @@ _update_picture_with_exif_data (FrogrFileLoader *self,
 static gboolean
 _check_filesize_limits (FrogrFileLoader *self, FrogrPicture *picture)
 {
-  FrogrFileLoaderPrivate *priv = NULL;
   gulong picture_filesize = 0;
   gulong max_filesize = 0;
   gboolean keep_going = TRUE;
 
-  priv = FROGR_FILE_LOADER_GET_PRIVATE (self);
-  max_filesize = frogr_picture_is_video (picture) ? priv->max_video_size : priv->max_picture_size;
+  max_filesize = frogr_picture_is_video (picture) ? self->max_video_size : self->max_picture_size;
   picture_filesize = frogr_picture_get_filesize (picture);
 
   if (picture_filesize > max_filesize)
@@ -656,7 +638,7 @@ _check_filesize_limits (FrogrFileLoader *self, FrogrPicture *picture)
                              frogr_picture_get_title (picture),
                              frogr_util_get_datasize_string (max_filesize));
 
-      frogr_util_show_error_dialog (GTK_WINDOW (priv->mainview), msg);
+      frogr_util_show_error_dialog (GTK_WINDOW (self->mainview), msg);
       g_free (msg);
 
       keep_going = FALSE;
@@ -759,24 +741,20 @@ _finish_task_and_self_destruct (FrogrFileLoader *self)
 static void
 _frogr_file_loader_dispose (GObject* object)
 {
-  FrogrFileLoaderPrivate *priv =
-    FROGR_FILE_LOADER_GET_PRIVATE (object);
-
-  g_clear_object (&priv->mainview);
-  g_clear_object (&priv->controller);
-
+  FrogrFileLoader *self = FROGR_FILE_LOADER (object);
+  g_clear_object (&self->mainview);
+  g_clear_object (&self->controller);
   G_OBJECT_CLASS (frogr_file_loader_parent_class)->dispose(object);
 }
 
 static void
 _frogr_file_loader_finalize (GObject* object)
 {
-  FrogrFileLoaderPrivate *priv =
-    FROGR_FILE_LOADER_GET_PRIVATE (object);
+  FrogrFileLoader *self = FROGR_FILE_LOADER (object);
 
   /* Free */
-  g_slist_foreach (priv->file_uris, (GFunc)g_free, NULL);
-  g_slist_free (priv->file_uris);
+  g_slist_foreach (self->file_uris, (GFunc)g_free, NULL);
+  g_slist_free (self->file_uris);
 
   G_OBJECT_CLASS (frogr_file_loader_parent_class)->finalize(object);
 }
@@ -804,46 +782,41 @@ frogr_file_loader_class_init(FrogrFileLoaderClass *klass)
                   0, NULL, NULL,
                   g_cclosure_marshal_VOID__VOID,
                   G_TYPE_NONE, 0);
-
-  g_type_class_add_private (obj_class, sizeof (FrogrFileLoaderPrivate));
 }
 
 static void
 frogr_file_loader_init (FrogrFileLoader *self)
 {
-  FrogrFileLoaderPrivate *priv =
-    FROGR_FILE_LOADER_GET_PRIVATE (self);
-
   FrogrConfig *config = frogr_config_get_instance ();
 
   /* Init private data */
 
   /* We need the controller to get the main window */
-  priv->controller = g_object_ref (frogr_controller_get_instance ());
-  priv->mainview = g_object_ref (frogr_controller_get_main_view (priv->controller));
+  self->controller = g_object_ref (frogr_controller_get_instance ());
+  self->mainview = g_object_ref (frogr_controller_get_main_view (self->controller));
 
   /* Initialize values from frogr configuration */
-  priv->max_picture_size = G_MAXULONG;
-  priv->max_video_size = G_MAXULONG;
-  priv->keep_file_extensions = frogr_config_get_keep_file_extensions (config);
-  priv->import_tags = frogr_config_get_import_tags_from_metadata (config);
-  priv->public_visibility = frogr_config_get_default_public (config);
-  priv->family_visibility = frogr_config_get_default_family (config);
-  priv->friend_visibility = frogr_config_get_default_friend (config);
-  priv->show_in_search = frogr_config_get_default_show_in_search (config);
-  priv->send_location = frogr_config_get_default_send_geolocation_data (config);
-  priv->replace_date_posted = frogr_config_get_default_replace_date_posted (config);
-  priv->license = frogr_config_get_default_license (config);
-  priv->safety_level = frogr_config_get_default_safety_level (config);
-  priv->content_type = frogr_config_get_default_content_type (config);
+  self->max_picture_size = G_MAXULONG;
+  self->max_video_size = G_MAXULONG;
+  self->keep_file_extensions = frogr_config_get_keep_file_extensions (config);
+  self->import_tags = frogr_config_get_import_tags_from_metadata (config);
+  self->public_visibility = frogr_config_get_default_public (config);
+  self->family_visibility = frogr_config_get_default_family (config);
+  self->friend_visibility = frogr_config_get_default_friend (config);
+  self->show_in_search = frogr_config_get_default_show_in_search (config);
+  self->send_location = frogr_config_get_default_send_geolocation_data (config);
+  self->replace_date_posted = frogr_config_get_default_replace_date_posted (config);
+  self->license = frogr_config_get_default_license (config);
+  self->safety_level = frogr_config_get_default_safety_level (config);
+  self->content_type = frogr_config_get_default_content_type (config);
 
   /* Init the rest of private data */
-  priv->file_uris = NULL;
-  priv->pictures = NULL;
-  priv->current_uri = NULL;
-  priv->current_picture = NULL;
-  priv->index = -1;
-  priv->n_files = 0;
+  self->file_uris = NULL;
+  self->pictures = NULL;
+  self->current_uri = NULL;
+  self->current_picture = NULL;
+  self->index = -1;
+  self->n_files = 0;
 }
 
 /* Public API */
@@ -852,20 +825,18 @@ FrogrFileLoader *
 frogr_file_loader_new_from_uris (GSList *file_uris, gulong max_picture_size, gulong max_video_size)
 {
   FrogrFileLoader *self = NULL;
-  FrogrFileLoaderPrivate *priv = NULL;
 
   g_return_val_if_fail (file_uris, NULL);
 
   self = FROGR_FILE_LOADER (g_object_new(FROGR_TYPE_FILE_LOADER, NULL));
-  priv = FROGR_FILE_LOADER_GET_PRIVATE (self);
 
-  priv->loading_mode = LOADING_MODE_FROM_URIS;
-  priv->file_uris = file_uris;
-  priv->current_uri = priv->file_uris;
-  priv->index = 0;
-  priv->n_files = g_slist_length (priv->file_uris);
-  priv->max_picture_size = max_picture_size;
-  priv->max_video_size = max_video_size;
+  self->loading_mode = LOADING_MODE_FROM_URIS;
+  self->file_uris = file_uris;
+  self->current_uri = self->file_uris;
+  self->index = 0;
+  self->n_files = g_slist_length (self->file_uris);
+  self->max_picture_size = max_picture_size;
+  self->max_video_size = max_video_size;
 
   return self;
 }
@@ -874,18 +845,16 @@ FrogrFileLoader *
 frogr_file_loader_new_from_pictures (GSList *pictures)
 {
   FrogrFileLoader *self = NULL;
-  FrogrFileLoaderPrivate *priv = NULL;
 
   g_return_val_if_fail (pictures, NULL);
 
   self = FROGR_FILE_LOADER (g_object_new(FROGR_TYPE_FILE_LOADER, NULL));
-  priv = FROGR_FILE_LOADER_GET_PRIVATE (self);
 
-  priv->loading_mode = LOADING_MODE_FROM_PICTURES;
-  priv->pictures = pictures;
-  priv->current_picture = pictures;
-  priv->index = 0;
-  priv->n_files = g_slist_length (priv->pictures);
+  self->loading_mode = LOADING_MODE_FROM_PICTURES;
+  self->pictures = pictures;
+  self->current_picture = pictures;
+  self->index = 0;
+  self->n_files = g_slist_length (self->pictures);
 
   return self;
 }
@@ -893,14 +862,10 @@ frogr_file_loader_new_from_pictures (GSList *pictures)
 void
 frogr_file_loader_load (FrogrFileLoader *self)
 {
-  FrogrFileLoaderPrivate *priv = NULL;
-
   g_return_if_fail (FROGR_IS_FILE_LOADER (self));
 
-  priv = FROGR_FILE_LOADER_GET_PRIVATE (self);
-
   /* Check first whether there's something to load */
-  if (!priv->n_files)
+  if (!self->n_files)
     return;
 
   /* Update status and progress */
diff --git a/src/frogr-file-loader.h b/src/frogr-file-loader.h
index 6a94f41..40bbbda 100644
--- a/src/frogr-file-loader.h
+++ b/src/frogr-file-loader.h
@@ -28,28 +28,9 @@
 
 G_BEGIN_DECLS
 
-#define FROGR_TYPE_FILE_LOADER            (frogr_file_loader_get_type())
-#define FROGR_FILE_LOADER(obj)            (G_TYPE_CHECK_INSTANCE_CAST(obj, FROGR_TYPE_FILE_LOADER, 
FrogrFileLoader))
-#define FROGR_FILE_LOADER_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST(klass, FROGR_TYPE_FILE_LOADER, 
FrogrFileLoaderClass))
-#define FROGR_IS_FILE_LOADER(obj)         (G_TYPE_CHECK_INSTANCE_TYPE(obj, FROGR_TYPE_FILE_LOADER))
-#define FROGR_IS_FILE_LOADER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), FROGR_TYPE_FILE_LOADER))
-#define FROGR_FILE_LOADER_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), FROGR_TYPE_FILE_LOADER, 
FrogrFileLoaderClass))
+#define FROGR_TYPE_FILE_LOADER (frogr_file_loader_get_type())
 
-typedef struct _FrogrFileLoader FrogrFileLoader;
-typedef struct _FrogrFileLoaderClass FrogrFileLoaderClass;
-
-struct _FrogrFileLoader
-{
-  GObject parent_instance;
-};
-
-struct _FrogrFileLoaderClass
-{
-  GObjectClass parent_class;
-};
-
-
-GType frogr_file_loader_get_type(void) G_GNUC_CONST;
+G_DECLARE_FINAL_TYPE (FrogrFileLoader, frogr_file_loader, FROGR, FILE_LOADER, GObject)
 
 FrogrFileLoader *frogr_file_loader_new_from_uris (GSList *file_uris, gulong max_picture_size, gulong 
max_video_size);
 
diff --git a/src/frogr-group.c b/src/frogr-group.c
index 86c8001..5d4c523 100644
--- a/src/frogr-group.c
+++ b/src/frogr-group.c
@@ -20,23 +20,19 @@
 
 #include "frogr-group.h"
 
-#define FROGR_GROUP_GET_PRIVATE(object)                 \
-  (G_TYPE_INSTANCE_GET_PRIVATE ((object),               \
-                                FROGR_TYPE_GROUP,       \
-                                FrogrGroupPrivate))
 
-G_DEFINE_TYPE (FrogrGroup, frogr_group, G_TYPE_OBJECT)
-
-/* Private struct */
-typedef struct _FrogrGroupPrivate FrogrGroupPrivate;
-struct _FrogrGroupPrivate
+struct _FrogrGroup
 {
+  GObject parent;
+
   gchar *id;
   gchar *name;
   FspGroupPrivacy privacy;
   gint n_photos;
 };
 
+G_DEFINE_TYPE (FrogrGroup, frogr_group, G_TYPE_OBJECT)
+
 /* Properties */
 enum  {
   PROP_0,
@@ -85,21 +81,21 @@ _frogr_group_get_property (GObject *object,
                            GValue *value,
                            GParamSpec *pspec)
 {
-  FrogrGroupPrivate *priv = FROGR_GROUP_GET_PRIVATE (object);
+  FrogrGroup *self = FROGR_GROUP (object);
 
   switch (prop_id)
     {
     case PROP_ID:
-      g_value_set_string (value, priv->id);
+      g_value_set_string (value, self->id);
       break;
     case PROP_NAME:
-      g_value_set_string (value, priv->name);
+      g_value_set_string (value, self->name);
       break;
     case PROP_PRIVACY:
-      g_value_set_int (value, priv->privacy);
+      g_value_set_int (value, self->privacy);
       break;
     case PROP_N_PHOTOS:
-      g_value_set_int (value, priv->n_photos);
+      g_value_set_int (value, self->n_photos);
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -110,11 +106,11 @@ _frogr_group_get_property (GObject *object,
 static void
 _frogr_group_finalize (GObject* object)
 {
-  FrogrGroupPrivate *priv = FROGR_GROUP_GET_PRIVATE (object);
+  FrogrGroup *self = FROGR_GROUP (object);
 
   /* free strings */
-  g_free (priv->id);
-  g_free (priv->name);
+  g_free (self->id);
+  g_free (self->name);
 
   /* call super class */
   G_OBJECT_CLASS (frogr_group_parent_class)->finalize(object);
@@ -167,20 +163,16 @@ frogr_group_class_init(FrogrGroupClass *klass)
                                                      G_MAXINT,
                                                      0,
                                                      G_PARAM_READWRITE));
-
-  g_type_class_add_private (obj_class, sizeof (FrogrGroupPrivate));
 }
 
 static void
 frogr_group_init (FrogrGroup *self)
 {
-  FrogrGroupPrivate *priv = FROGR_GROUP_GET_PRIVATE (self);
-
   /* Default values */
-  priv->id = NULL;
-  priv->name = NULL;
-  priv->privacy = FSP_GROUP_PRIVACY_NONE;
-  priv->n_photos = 0;
+  self->id = NULL;
+  self->name = NULL;
+  self->privacy = FSP_GROUP_PRIVACY_NONE;
+  self->n_photos = 0;
 }
 
 
@@ -209,95 +201,64 @@ frogr_group_new (const gchar *id,
 const gchar *
 frogr_group_get_id (FrogrGroup *self)
 {
-  FrogrGroupPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_GROUP(self), NULL);
-
-  priv = FROGR_GROUP_GET_PRIVATE (self);
-  return (const gchar *)priv->id;
+  return (const gchar *)self->id;
 }
 
 void
 frogr_group_set_id (FrogrGroup *self,
                     const gchar *id)
 {
-  FrogrGroupPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_GROUP(self));
-
-  priv = FROGR_GROUP_GET_PRIVATE (self);
-  g_free (priv->id);
-  priv->id = g_strdup (id);
+  g_free (self->id);
+  self->id = g_strdup (id);
 }
 
 const gchar *
 frogr_group_get_name (FrogrGroup *self)
 {
-  FrogrGroupPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_GROUP(self), NULL);
-
-  priv = FROGR_GROUP_GET_PRIVATE (self);
-  return (const gchar *)priv->name;
+  return (const gchar *)self->name;
 }
 
 void
 frogr_group_set_name (FrogrGroup *self,
                        const gchar *name)
 {
-  FrogrGroupPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_GROUP(self));
   g_return_if_fail(name != NULL);
 
-  priv = FROGR_GROUP_GET_PRIVATE (self);
-  g_free (priv->name);
-  priv->name = g_strdup (name);
+  g_free (self->name);
+  self->name = g_strdup (name);
 }
 
 
 FspGroupPrivacy
 frogr_group_get_privacy (FrogrGroup *self)
 {
-  FrogrGroupPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_GROUP(self), FALSE);
-
-  priv =FROGR_GROUP_GET_PRIVATE (self);
-  return priv->privacy;
+  return self->privacy;
 }
 
 void
 frogr_group_set_privacy (FrogrGroup *self, FspGroupPrivacy privacy)
 {
-  FrogrGroupPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_GROUP(self));
-
-  priv = FROGR_GROUP_GET_PRIVATE (self);
-  priv->privacy = privacy;
+  self->privacy = privacy;
 }
 
 gint
 frogr_group_get_n_photos (FrogrGroup *self)
 {
-  FrogrGroupPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_GROUP(self), FALSE);
-
-  priv = FROGR_GROUP_GET_PRIVATE (self);
-  return priv->n_photos;
+  return self->n_photos;
 }
 
 void
 frogr_group_set_n_photos (FrogrGroup *self,
                           gint n)
 {
-  FrogrGroupPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_GROUP(self));
-
-  priv = FROGR_GROUP_GET_PRIVATE (self);
-  priv->n_photos = n;
+  self->n_photos = n;
 }
 
diff --git a/src/frogr-group.h b/src/frogr-group.h
index 54d6fa1..7698350 100644
--- a/src/frogr-group.h
+++ b/src/frogr-group.h
@@ -28,28 +28,9 @@
 
 G_BEGIN_DECLS
 
-#define FROGR_TYPE_GROUP           (frogr_group_get_type())
-#define FROGR_GROUP(obj)           (G_TYPE_CHECK_INSTANCE_CAST(obj, FROGR_TYPE_GROUP, FrogrGroup))
-#define FROGR_GROUP_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST(klass, FROGR_TYPE_GROUP, FrogrGroupClass))
-#define FROGR_IS_GROUP(obj)           (G_TYPE_CHECK_INSTANCE_TYPE(obj, FROGR_TYPE_GROUP))
-#define FROGR_IS_GROUP_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE((klass), FROGR_TYPE_GROUP))
-#define FROGR_GROUP_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FROGR_TYPE_GROUP, FrogrGroupClass))
+#define FROGR_TYPE_GROUP (frogr_group_get_type())
 
-typedef struct _FrogrGroup FrogrGroup;
-typedef struct _FrogrGroupClass FrogrGroupClass;
-
-struct _FrogrGroup
-{
-  GObject parent_instance;
-};
-
-struct _FrogrGroupClass
-{
-  GObjectClass parent_class;
-};
-
-
-GType frogr_group_get_type(void) G_GNUC_CONST;
+G_DECLARE_FINAL_TYPE (FrogrGroup, frogr_group, FROGR, GROUP, GObject)
 
 /* Constructors */
 FrogrGroup *frogr_group_new (const gchar *id,
diff --git a/src/frogr-live-entry.c b/src/frogr-live-entry.c
index f44b55d..037e14b 100644
--- a/src/frogr-live-entry.c
+++ b/src/frogr-live-entry.c
@@ -26,18 +26,16 @@
 #include <config.h>
 #include <glib/gi18n.h>
 
-#define FROGR_LIVE_ENTRY_GET_PRIVATE(object)            \
-  (G_TYPE_INSTANCE_GET_PRIVATE ((object),               \
-                                FROGR_TYPE_LIVE_ENTRY,  \
-                                FrogrLiveEntryPrivate))
 
-G_DEFINE_TYPE (FrogrLiveEntry, frogr_live_entry, GTK_TYPE_ENTRY)
+struct _FrogrLiveEntry {
+  GtkEntry parent;
 
-typedef struct _FrogrLiveEntryPrivate {
   GtkEntryCompletion *entry_completion;
   GtkTreeModel *treemodel;
   gboolean auto_completion;
-} FrogrLiveEntryPrivate;
+};
+
+G_DEFINE_TYPE (FrogrLiveEntry, frogr_live_entry, GTK_TYPE_ENTRY)
 
 
 /* Tree view columns */
@@ -89,7 +87,6 @@ _entry_list_completion_func (GtkEntryCompletion *completion, const gchar *key,
                              GtkTreeIter *iter, gpointer data)
 {
   FrogrLiveEntry *self = NULL;
-  FrogrLiveEntryPrivate *priv = NULL;
   gchar *stripped_entry_text = NULL;
   gchar *basetext = NULL;
   gchar *entry = NULL;
@@ -99,8 +96,7 @@ _entry_list_completion_func (GtkEntryCompletion *completion, const gchar *key,
   gboolean matches = FALSE;
 
   self = FROGR_LIVE_ENTRY (data);
-  priv = FROGR_LIVE_ENTRY_GET_PRIVATE (self);
-  gtk_tree_model_get (priv->treemodel, iter, TEXT_COL, &entry, -1);
+  gtk_tree_model_get (self->treemodel, iter, TEXT_COL, &entry, -1);
 
   /* Do nothing if not a valid entry */
   if (!entry)
@@ -176,12 +172,12 @@ _completion_match_selected_cb (GtkEntryCompletion *widget, GtkTreeModel *model,
 static void
 _frogr_live_entry_dispose (GObject *object)
 {
-  FrogrLiveEntryPrivate *priv = FROGR_LIVE_ENTRY_GET_PRIVATE (object);
+  FrogrLiveEntry *self = FROGR_LIVE_ENTRY (object);
 
-  if (priv->treemodel)
+  if (self->treemodel)
     {
-      g_object_unref (priv->treemodel);
-      priv->treemodel = NULL;
+      g_object_unref (self->treemodel);
+      self->treemodel = NULL;
     }
 
   G_OBJECT_CLASS(frogr_live_entry_parent_class)->dispose (object);
@@ -194,18 +190,14 @@ frogr_live_entry_class_init (FrogrLiveEntryClass *klass)
 
   /* GObject signals */
   obj_class->dispose = _frogr_live_entry_dispose;
-
-  g_type_class_add_private (obj_class, sizeof (FrogrLiveEntryPrivate));
 }
 
 static void
 frogr_live_entry_init (FrogrLiveEntry *self)
 {
-  FrogrLiveEntryPrivate *priv = FROGR_LIVE_ENTRY_GET_PRIVATE (self);
-
-  priv->entry_completion = NULL;
-  priv->treemodel = NULL;
-  priv->auto_completion = FALSE;
+  self->entry_completion = NULL;
+  self->treemodel = NULL;
+  self->auto_completion = FALSE;
 }
 
 /* Public API */
@@ -219,36 +211,33 @@ frogr_live_entry_new (void)
 void
 frogr_live_entry_set_auto_completion (FrogrLiveEntry *self, const GSList *data)
 {
-  FrogrLiveEntryPrivate *priv = NULL;
-
-  priv = FROGR_LIVE_ENTRY_GET_PRIVATE (self);
-  priv->auto_completion = data ? TRUE : FALSE;
+  self->auto_completion = data ? TRUE : FALSE;
 
   /* Initialize the auto-completion stuff if it's the first time */
-  if (priv->auto_completion && priv->entry_completion == NULL)
+  if (self->auto_completion && self->entry_completion == NULL)
     {
       GtkTreeModel *model = NULL;
 
       model = GTK_TREE_MODEL (gtk_list_store_new (1, G_TYPE_STRING));
-      priv->treemodel = model;
+      self->treemodel = model;
 
-      priv->entry_completion = gtk_entry_completion_new ();
-      gtk_entry_completion_set_text_column (GTK_ENTRY_COMPLETION (priv->entry_completion), TEXT_COL);
-      gtk_entry_completion_set_inline_completion (GTK_ENTRY_COMPLETION (priv->entry_completion), TRUE);
-      gtk_entry_completion_set_match_func (GTK_ENTRY_COMPLETION (priv->entry_completion),
+      self->entry_completion = gtk_entry_completion_new ();
+      gtk_entry_completion_set_text_column (GTK_ENTRY_COMPLETION (self->entry_completion), TEXT_COL);
+      gtk_entry_completion_set_inline_completion (GTK_ENTRY_COMPLETION (self->entry_completion), TRUE);
+      gtk_entry_completion_set_match_func (GTK_ENTRY_COMPLETION (self->entry_completion),
                                            _entry_list_completion_func,
                                            self, NULL);
 
-      gtk_entry_completion_set_model (GTK_ENTRY_COMPLETION (priv->entry_completion), model);
+      gtk_entry_completion_set_model (GTK_ENTRY_COMPLETION (self->entry_completion), model);
 
-      g_signal_connect (G_OBJECT (priv->entry_completion), "match-selected",
+      g_signal_connect (G_OBJECT (self->entry_completion), "match-selected",
                         G_CALLBACK (_completion_match_selected_cb), self);
     }
 
   /* Enable or disable auto-completion as needed */
-  gtk_entry_set_completion (GTK_ENTRY (self), data ? priv->entry_completion : NULL);
+  gtk_entry_set_completion (GTK_ENTRY (self), data ? self->entry_completion : NULL);
 
   /* Populate the tree model with the data (or 'no data) passed */
-  if (priv->treemodel)
-    _populate_treemodel_with_data (priv->treemodel, data);
+  if (self->treemodel)
+    _populate_treemodel_with_data (self->treemodel, data);
 }
diff --git a/src/frogr-live-entry.h b/src/frogr-live-entry.h
index e71b05e..b97c444 100644
--- a/src/frogr-live-entry.h
+++ b/src/frogr-live-entry.h
@@ -25,27 +25,9 @@
 
 G_BEGIN_DECLS
 
-#define FROGR_TYPE_LIVE_ENTRY           (frogr_live_entry_get_type())
-#define FROGR_LIVE_ENTRY(obj)           (G_TYPE_CHECK_INSTANCE_CAST(obj, FROGR_TYPE_LIVE_ENTRY, 
FrogrLiveEntry))
-#define FROGR_LIVE_ENTRY_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST(klass, FROGR_TYPE_LIVE_ENTRY, 
FrogrLiveEntryClass))
-#define FROGR_IS_LIVE_ENTRY(obj)           (G_TYPE_CHECK_INSTANCE_TYPE(obj, FROGR_TYPE_LIVE_ENTRY))
-#define FROGR_IS_LIVE_ENTRY_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE((klass), FROGR_TYPE_LIVE_ENTRY))
-#define FROGR_LIVE_ENTRY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FROGR_TYPE_LIVE_ENTRY, 
FrogrLiveEntryClass))
-
-typedef struct _FrogrLiveEntry        FrogrLiveEntry;
-typedef struct _FrogrLiveEntryClass   FrogrLiveEntryClass;
-
-struct _FrogrLiveEntryClass
-{
-  GtkEntryClass parent_class;
-};
-
-struct _FrogrLiveEntry
-{
-  GtkEntry parent;
-};
-
-GType frogr_live_entry_get_type (void) G_GNUC_CONST;
+#define FROGR_TYPE_LIVE_ENTRY (frogr_live_entry_get_type())
+
+G_DECLARE_FINAL_TYPE (FrogrLiveEntry, frogr_live_entry, FROGR, LIVE_ENTRY, GtkEntry)
 
 GtkWidget *frogr_live_entry_new (void);
 
diff --git a/src/frogr-location.c b/src/frogr-location.c
index 3389f9c..cda0bcd 100644
--- a/src/frogr-location.c
+++ b/src/frogr-location.c
@@ -20,21 +20,17 @@
 
 #include "frogr-location.h"
 
-#define FROGR_LOCATION_GET_PRIVATE(object)              \
-  (G_TYPE_INSTANCE_GET_PRIVATE ((object),               \
-                                FROGR_TYPE_LOCATION,    \
-                                FrogrLocationPrivate))
 
-G_DEFINE_TYPE (FrogrLocation, frogr_location, G_TYPE_OBJECT)
-
-/* Private struct */
-typedef struct _FrogrLocationPrivate FrogrLocationPrivate;
-struct _FrogrLocationPrivate
+struct _FrogrLocation
 {
+  GObject parent;
+
   gdouble latitude;
   gdouble longitude;
 };
 
+G_DEFINE_TYPE (FrogrLocation, frogr_location, G_TYPE_OBJECT)
+
 /* Properties */
 enum  {
   PROP_0,
@@ -72,15 +68,15 @@ _frogr_location_get_property (GObject *object,
                              GValue *value,
                              GParamSpec *pspec)
 {
-  FrogrLocationPrivate *priv = FROGR_LOCATION_GET_PRIVATE (object);
+  FrogrLocation *self = FROGR_LOCATION (object);
 
   switch (prop_id)
     {
     case PROP_LATITUDE:
-      g_value_set_double (value, priv->latitude);
+      g_value_set_double (value, self->latitude);
       break;
     case PROP_LONGITUDE:
-      g_value_set_double (value, priv->longitude);
+      g_value_set_double (value, self->longitude);
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -117,18 +113,14 @@ frogr_location_class_init(FrogrLocationClass *klass)
                                                         180.0,
                                                         0.0,
                                                         G_PARAM_READWRITE));
-
-  g_type_class_add_private (obj_class, sizeof (FrogrLocationPrivate));
 }
 
 static void
 frogr_location_init (FrogrLocation *self)
 {
-  FrogrLocationPrivate *priv = FROGR_LOCATION_GET_PRIVATE (self);
-
   /* Default values */
-  priv->latitude = 0.0;
-  priv->longitude = 0.0;
+  self->latitude = 0.0;
+  self->longitude = 0.0;
 }
 
 
@@ -149,45 +141,29 @@ frogr_location_new (gdouble latitude, gdouble longitude)
 gdouble
 frogr_location_get_latitude (FrogrLocation *self)
 {
-  FrogrLocationPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_LOCATION(self), 0.0);
-
-  priv = FROGR_LOCATION_GET_PRIVATE (self);
-  return priv->latitude;
+  return self->latitude;
 }
 
 void
 frogr_location_set_latitude (FrogrLocation *self,
                              gdouble latitude)
 {
-  FrogrLocationPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_LOCATION(self));
-
-  priv = FROGR_LOCATION_GET_PRIVATE (self);
-  priv->latitude = latitude;
+  self->latitude = latitude;
 }
 
 gdouble
 frogr_location_get_longitude (FrogrLocation *self)
 {
-  FrogrLocationPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_LOCATION(self), 0.0);
-
-  priv = FROGR_LOCATION_GET_PRIVATE (self);
-  return priv->longitude;
+  return self->longitude;
 }
 
 void
 frogr_location_set_longitude (FrogrLocation *self,
                               gdouble longitude)
 {
-  FrogrLocationPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_LOCATION(self));
-
-  priv = FROGR_LOCATION_GET_PRIVATE (self);
-  priv->longitude = longitude;
+  self->longitude = longitude;
 }
diff --git a/src/frogr-location.h b/src/frogr-location.h
index 41b249d..56643e6 100644
--- a/src/frogr-location.h
+++ b/src/frogr-location.h
@@ -26,28 +26,9 @@
 
 G_BEGIN_DECLS
 
-#define FROGR_TYPE_LOCATION           (frogr_location_get_type())
-#define FROGR_LOCATION(obj)           (G_TYPE_CHECK_INSTANCE_CAST(obj, FROGR_TYPE_LOCATION, FrogrLocation))
-#define FROGR_LOCATION_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST(klass, FROGR_TYPE_LOCATION, 
FrogrLocationClass))
-#define FROGR_IS_LOCATION(obj)           (G_TYPE_CHECK_INSTANCE_TYPE(obj, FROGR_TYPE_LOCATION))
-#define FROGR_IS_LOCATION_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE((klass), FROGR_TYPE_LOCATION))
-#define FROGR_LOCATION_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FROGR_TYPE_LOCATION, 
FrogrLocationClass))
+#define FROGR_TYPE_LOCATION (frogr_location_get_type())
 
-typedef struct _FrogrLocation FrogrLocation;
-typedef struct _FrogrLocationClass FrogrLocationClass;
-
-struct _FrogrLocation
-{
-  GObject parent_instance;
-};
-
-struct _FrogrLocationClass
-{
-  GObjectClass parent_class;
-};
-
-
-GType frogr_location_get_type(void) G_GNUC_CONST;
+G_DECLARE_FINAL_TYPE (FrogrLocation, frogr_location, FROGR, LOCATION, GObject)
 
 /* Constructor */
 FrogrLocation *frogr_location_new (gdouble latitude, gdouble longitude);
diff --git a/src/frogr-main-view.c b/src/frogr-main-view.c
index cd09c9e..1ba73f7 100644
--- a/src/frogr-main-view.c
+++ b/src/frogr-main-view.c
@@ -89,16 +89,10 @@
 #define GDK_PRIMARY_MASK GDK_CONTROL_MASK
 #endif
 
-#define FROGR_MAIN_VIEW_GET_PRIVATE(object)             \
-  (G_TYPE_INSTANCE_GET_PRIVATE ((object),               \
-                                FROGR_TYPE_MAIN_VIEW,   \
-                                FrogrMainViewPrivate))
 
-G_DEFINE_TYPE (FrogrMainView, frogr_main_view, GTK_TYPE_APPLICATION_WINDOW)
-
-/* Private Data */
+struct _FrogrMainView {
+  GtkApplicationWindow parent;
 
-typedef struct _FrogrMainViewPrivate {
   FrogrModel *model;
   FrogrController *controller;
 
@@ -135,7 +129,9 @@ typedef struct _FrogrMainViewPrivate {
 
   GtkBuilder *builder;
   GMenuModel *app_menu;
-} FrogrMainViewPrivate;
+};
+
+G_DEFINE_TYPE (FrogrMainView, frogr_main_view, GTK_TYPE_APPLICATION_WINDOW)
 
 
 /* Icon view treeview */
@@ -291,9 +287,9 @@ static void _model_changed (FrogrController *controller, gpointer data);
 
 static void _model_deserialized (FrogrController *controller, gpointer data);
 
-static void _update_state_description (FrogrMainView *mainview);
+static void _update_state_description (FrogrMainView *self);
 
-static gchar *_craft_state_description (FrogrMainView *mainview);
+static gchar *_craft_state_description (FrogrMainView *self);
 
 static void _update_sensitiveness (FrogrMainView *self);
 static void _update_sensitiveness_for_action (FrogrMainView *self,
@@ -339,7 +335,6 @@ static GActionEntry win_entries[] = {
 static void
 _initialize_ui (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = NULL;
   GtkBuilder *builder;
   GtkWidget *main_vbox;
   GtkWidget *icon_view;
@@ -355,8 +350,6 @@ _initialize_ui (FrogrMainView *self)
   GVariant *action_parameter = NULL;
   gint i = 0;
 
-  priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
   /* Provide a default icon list in several sizes */
 
   icons_path = frogr_util_get_icons_dir ();
@@ -373,7 +366,7 @@ _initialize_ui (FrogrMainView *self)
 
   /* Get widgets from GtkBuilder */
   builder = gtk_builder_new ();
-  priv->builder = builder;
+  self->builder = builder;
 
   full_path = g_strdup_printf ("%s/" UI_MAIN_VIEW_FILE, frogr_util_get_app_data_dir ());
   gtk_builder_add_from_file (builder, full_path, NULL);
@@ -387,17 +380,17 @@ _initialize_ui (FrogrMainView *self)
   gtk_builder_add_from_file (builder, full_path, NULL);
   g_free (full_path);
 
-  priv->gtk_app = gtk_window_get_application (GTK_WINDOW (self));
-  g_action_map_add_action_entries (G_ACTION_MAP (priv->gtk_app),
+  self->gtk_app = gtk_window_get_application (GTK_WINDOW (self));
+  g_action_map_add_action_entries (G_ACTION_MAP (self->gtk_app),
                                    app_entries, G_N_ELEMENTS (app_entries),
                                    self);
-  priv->app_menu = G_MENU_MODEL (gtk_builder_get_object (builder, "app-menu"));
-  gtk_application_set_app_menu (priv->gtk_app, priv->app_menu);
+  self->app_menu = G_MENU_MODEL (gtk_builder_get_object (builder, "app-menu"));
+  gtk_application_set_app_menu (self->gtk_app, self->app_menu);
 
 #if USE_HEADER_BAR
   /* Header_Bar and main vertical box below*/
   _initialize_header_bar (self);
-  gtk_window_set_titlebar (GTK_WINDOW (self), priv->header_bar);
+  gtk_window_set_titlebar (GTK_WINDOW (self), self->header_bar);
 #else
   /* Menu bar and Toolbar */
   _initialize_menubar_and_toolbar (self);
@@ -405,10 +398,10 @@ _initialize_ui (FrogrMainView *self)
 #endif
 
   icon_view = GTK_WIDGET (gtk_builder_get_object (builder, "icon_view"));
-  priv->icon_view = icon_view;
+  self->icon_view = icon_view;
 
   status_bar = GTK_WIDGET (gtk_builder_get_object (builder, "status_bar"));
-  priv->status_bar = status_bar;
+  self->status_bar = status_bar;
 
   /* Init main model's state description */
   _update_state_description (self);
@@ -418,22 +411,22 @@ _initialize_ui (FrogrMainView *self)
 
   /* Initialize sorting criteria and reverse in the UI */
   action = g_action_map_lookup_action (G_ACTION_MAP (self), ACTION_SORT_BY);
-  if (priv->sorting_criteria == SORT_BY_TITLE)
+  if (self->sorting_criteria == SORT_BY_TITLE)
     action_parameter = g_variant_new_string (ACTION_SORT_BY_TARGET_TITLE);
-  else if (priv->sorting_criteria == SORT_BY_DATE)
+  else if (self->sorting_criteria == SORT_BY_DATE)
     action_parameter = g_variant_new_string (ACTION_SORT_BY_TARGET_DATE_TAKEN);
-  else if (priv->sorting_criteria == SORT_BY_SIZE)
+  else if (self->sorting_criteria == SORT_BY_SIZE)
     action_parameter = g_variant_new_string (ACTION_SORT_BY_TARGET_SIZE);
   else
     action_parameter = g_variant_new_string (ACTION_SORT_BY_TARGET_AS_LOADED);
   g_action_change_state (G_ACTION (action), action_parameter);
 
   action = g_action_map_lookup_action (G_ACTION_MAP (self), ACTION_SORT_IN_REVERSE_ORDER);
-  g_action_change_state (G_ACTION (action), g_variant_new_boolean (priv->sorting_reversed));
+  g_action_change_state (G_ACTION (action), g_variant_new_boolean (self->sorting_reversed));
 
   /* Initialize 'tooltips enabled' in the UI */
   action = g_action_map_lookup_action (G_ACTION_MAP (self), ACTION_ENABLE_TOOLTIPS);
-  g_action_change_state (G_ACTION (action), g_variant_new_boolean (priv->tooltips_enabled));
+  g_action_change_state (G_ACTION (action), g_variant_new_boolean (self->tooltips_enabled));
 
   /* Initialize extra widgets */
 
@@ -442,8 +435,8 @@ _initialize_ui (FrogrMainView *self)
   gtk_builder_add_from_file (builder, full_path, NULL);
   g_free (full_path);
   ctxt_menu_model = G_MENU_MODEL (gtk_builder_get_object (builder, "context-menu"));
-  priv->pictures_ctxt_menu = gtk_menu_new_from_model (ctxt_menu_model);
-  gtk_menu_attach_to_widget (GTK_MENU (priv->pictures_ctxt_menu), GTK_WIDGET (self), NULL);
+  self->pictures_ctxt_menu = gtk_menu_new_from_model (ctxt_menu_model);
+  gtk_menu_attach_to_widget (GTK_MENU (self->pictures_ctxt_menu), GTK_WIDGET (self), NULL);
 
   /* Initialize drag'n'drop support */
   _initialize_drag_n_drop (self);
@@ -466,17 +459,17 @@ _initialize_ui (FrogrMainView *self)
   gtk_container_add (GTK_CONTAINER (progress_vbox), progress_bar);
 
   gtk_widget_hide (progress_dialog);
-  priv->progress_dialog = progress_dialog;
-  priv->progress_bar = progress_bar;
-  priv->progress_is_showing = FALSE;
-  priv->state_description = NULL;
+  self->progress_dialog = progress_dialog;
+  self->progress_bar = progress_bar;
+  self->progress_is_showing = FALSE;
+  self->state_description = NULL;
 
   /* Initialize model */
-  priv->tree_model = GTK_TREE_MODEL (gtk_list_store_new (3,
+  self->tree_model = GTK_TREE_MODEL (gtk_list_store_new (3,
                                                          G_TYPE_STRING,
                                                          GDK_TYPE_PIXBUF,
                                                          G_TYPE_OBJECT));
-  gtk_icon_view_set_model (GTK_ICON_VIEW (icon_view), priv->tree_model);
+  gtk_icon_view_set_model (GTK_ICON_VIEW (icon_view), self->tree_model);
   gtk_icon_view_set_pixbuf_column (GTK_ICON_VIEW (icon_view), PIXBUF_COL);
   gtk_icon_view_set_selection_mode (GTK_ICON_VIEW (icon_view),
                                     GTK_SELECTION_MULTIPLE);
@@ -490,8 +483,8 @@ _initialize_ui (FrogrMainView *self)
   gtk_window_set_default_size (GTK_WINDOW (self), MINIMUM_WINDOW_WIDTH, MINIMUM_WINDOW_HEIGHT);
 
   /* Init status bar */
-  priv->sb_context_id =
-    gtk_statusbar_get_context_id (GTK_STATUSBAR (priv->status_bar),
+  self->sb_context_id =
+    gtk_statusbar_get_context_id (GTK_STATUSBAR (self->status_bar),
                                   "Status bar messages");
 
   /* Connect signals */
@@ -499,19 +492,19 @@ _initialize_ui (FrogrMainView *self)
                     G_CALLBACK (_on_main_view_delete_event),
                     self);
 
-  g_signal_connect (G_OBJECT (priv->icon_view), "query-tooltip",
+  g_signal_connect (G_OBJECT (self->icon_view), "query-tooltip",
                     G_CALLBACK (_on_icon_view_query_tooltip),
                     self);
 
-  g_signal_connect (G_OBJECT (priv->icon_view), "selection-changed",
+  g_signal_connect (G_OBJECT (self->icon_view), "selection-changed",
                     G_CALLBACK (_on_icon_view_selection_changed),
                     self);
 
-  g_signal_connect (G_OBJECT (priv->progress_dialog), "response",
+  g_signal_connect (G_OBJECT (self->progress_dialog), "response",
                     G_CALLBACK(_progress_dialog_response),
                     self);
 
-  g_signal_connect (G_OBJECT (priv->progress_dialog),
+  g_signal_connect (G_OBJECT (self->progress_dialog),
                     "delete-event",
                     G_CALLBACK(_progress_dialog_delete_event),
                     self);
@@ -621,7 +614,6 @@ extract_accels_from_menu (GMenuModel     *model,
 
 static void _initialize_header_bar (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = NULL;
   GMenuModel *menu_model = NULL;
   GtkWidget *toolbar = NULL;
   GtkWidget *header_item = NULL;
@@ -630,11 +622,10 @@ static void _initialize_header_bar (FrogrMainView *self)
   GtkIconTheme *icon_theme = NULL;
   gchar *full_path = NULL;
 
-  priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-  priv->header_bar = gtk_header_bar_new ();
+  self->header_bar = gtk_header_bar_new ();
 
   /* Make sure that the toolbar is not visible when using hte header bar */
-  toolbar = GTK_WIDGET (gtk_builder_get_object (priv->builder, "toolbar"));
+  toolbar = GTK_WIDGET (gtk_builder_get_object (self->builder, "toolbar"));
   gtk_widget_hide (toolbar);
 
   /* First create the left side buttons */
@@ -647,11 +638,11 @@ static void _initialize_header_bar (FrogrMainView *self)
   /* Menu button and its associated menu */
 
   full_path = g_strdup_printf ("%s/" UI_MENU_BUTTON_FILE, frogr_util_get_app_data_dir ());
-  gtk_builder_add_from_file (priv->builder, full_path, NULL);
+  gtk_builder_add_from_file (self->builder, full_path, NULL);
   g_free (full_path);
 
-  menu_model = G_MENU_MODEL (gtk_builder_get_object (priv->builder, "menu-button"));
-  extract_accels_from_menu (menu_model, priv->gtk_app);
+  menu_model = G_MENU_MODEL (gtk_builder_get_object (self->builder, "menu-button"));
+  extract_accels_from_menu (menu_model, self->gtk_app);
 
   menu = gtk_menu_new_from_model (menu_model);
   gtk_widget_set_halign (menu, GTK_ALIGN_END);
@@ -671,7 +662,7 @@ static void _initialize_header_bar (FrogrMainView *self)
   gtk_button_set_image (GTK_BUTTON (header_item), menu_image);
   gtk_menu_button_set_popup (GTK_MENU_BUTTON (header_item), menu);
   gtk_widget_show (header_item);
-  gtk_header_bar_pack_end (GTK_HEADER_BAR (priv->header_bar), header_item);
+  gtk_header_bar_pack_end (GTK_HEADER_BAR (self->header_bar), header_item);
 
   /* Save project item */
 
@@ -679,35 +670,32 @@ static void _initialize_header_bar (FrogrMainView *self)
 
   /* Make the close button visible and show */
 
-  gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (priv->header_bar), TRUE);
-  gtk_widget_show (priv->header_bar);
+  gtk_header_bar_set_show_close_button (GTK_HEADER_BAR (self->header_bar), TRUE);
+  gtk_widget_show (self->header_bar);
 }
 
 static void
 _add_item_to_header_bar (FrogrMainView *self, HeaderBarItemPosition pos, const gchar *action_name, const 
gchar *icon_name, const gchar *label, const gchar *tooltip_text, const gchar *accel)
 {
-  FrogrMainViewPrivate *priv = NULL;
   GtkWidget *item = NULL;
 #if GTK_CHECK_VERSION (3, 12, 0)
   const gchar *accels[2] = { accel, NULL };
 #endif
 
-  priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
   item = gtk_button_new_from_icon_name (icon_name, GTK_ICON_SIZE_MENU);
   gtk_widget_set_tooltip_text (item, tooltip_text);
   gtk_actionable_set_action_name (GTK_ACTIONABLE (item), action_name);
 
 #if GTK_CHECK_VERSION (3, 12, 0)
-  gtk_application_set_accels_for_action (priv->gtk_app, action_name, accels);
+  gtk_application_set_accels_for_action (self->gtk_app, action_name, accels);
 #else
-  gtk_application_add_accelerator (priv->gtk_app, accel, action_name, NULL);
+  gtk_application_add_accelerator (self->gtk_app, accel, action_name, NULL);
 #endif
 
   if (pos == HEADER_BAR_POSITION_START)
-    gtk_header_bar_pack_start (GTK_HEADER_BAR (priv->header_bar), item);
+    gtk_header_bar_pack_start (GTK_HEADER_BAR (self->header_bar), item);
   else
-    gtk_header_bar_pack_end (GTK_HEADER_BAR (priv->header_bar), item);
+    gtk_header_bar_pack_end (GTK_HEADER_BAR (self->header_bar), item);
 
   gtk_widget_show (item);
 }
@@ -716,17 +704,14 @@ _add_item_to_header_bar (FrogrMainView *self, HeaderBarItemPosition pos, const g
 
 static void _initialize_menubar_and_toolbar (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = NULL;
   GtkWidget *toolbar = NULL;
   GtkToolItem *toolbar_items[7];
   gchar *full_path = NULL;
   gint i;
 
-  priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
   /* Menu bar */
   full_path = g_strdup_printf ("%s/" UI_MENU_BAR_FILE, frogr_util_get_app_data_dir ());
-  gtk_builder_add_from_file (priv->builder, full_path, NULL);
+  gtk_builder_add_from_file (self->builder, full_path, NULL);
   g_free (full_path);
 
   g_action_map_add_action_entries (G_ACTION_MAP (self),
@@ -734,11 +719,11 @@ static void _initialize_menubar_and_toolbar (FrogrMainView *self)
                                    self);
 
   gtk_application_set_menubar (gtk_window_get_application (GTK_WINDOW (self)),
-                               G_MENU_MODEL (gtk_builder_get_object (priv->builder, "menu-bar")));
+                               G_MENU_MODEL (gtk_builder_get_object (self->builder, "menu-bar")));
   gtk_application_window_set_show_menubar (GTK_APPLICATION_WINDOW (self), TRUE);
 
   /* Toolbar */
-  toolbar = GTK_WIDGET (gtk_builder_get_object (priv->builder, "toolbar"));
+  toolbar = GTK_WIDGET (gtk_builder_get_object (self->builder, "toolbar"));
   gtk_widget_show (toolbar);
 
   toolbar_items[0] = _create_toolbar_item ("win.open-project", "document-open", _("Open"), _("Open Existing 
Project"));
@@ -777,12 +762,10 @@ _create_toolbar_item (const gchar *action_name, const gchar *icon_name, const gc
 static gboolean
 _maybe_show_auth_dialog_on_idle (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
-  if (!frogr_controller_is_authorized (priv->controller))
+  if (!frogr_controller_is_authorized (self->controller))
     {
       /* Show authorization dialog if needed */
-      frogr_controller_show_auth_dialog (priv->controller);
+      frogr_controller_show_auth_dialog (self->controller);
     }
 
   return FALSE;
@@ -791,21 +774,19 @@ _maybe_show_auth_dialog_on_idle (FrogrMainView *self)
 static void
 _update_project_path (FrogrMainView *self, const gchar *path)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
   /* Early return if nothing changed */
-  if (!g_strcmp0 (priv->project_filepath, path))
+  if (!g_strcmp0 (self->project_filepath, path))
       return;
 
-  g_free (priv->project_name);
-  g_free (priv->project_dir);
-  g_free (priv->project_filepath);
+  g_free (self->project_name);
+  g_free (self->project_dir);
+  g_free (self->project_filepath);
 
   if (!path)
     {
-      priv->project_name = NULL;
-      priv->project_dir = NULL;
-      priv->project_filepath = NULL;
+      self->project_name = NULL;
+      self->project_dir = NULL;
+      self->project_filepath = NULL;
     }
   else
     {
@@ -822,7 +803,7 @@ _update_project_path (FrogrMainView *self, const gchar *path)
                                      G_FILE_QUERY_INFO_NONE,
                                      NULL,
                                      NULL);
-      priv->project_name = g_strdup (g_file_info_get_display_name (file_info));
+      self->project_name = g_strdup (g_file_info_get_display_name (file_info));
 
       /* Get the base directory, in beautiful UTF-8 too */
       dir = g_file_get_parent (file);
@@ -836,10 +817,10 @@ _update_project_path (FrogrMainView *self, const gchar *path)
           dir_path = g_strdup_printf ("~%s", &dir_path[g_utf8_strlen (home_dir, -1)]);
           g_free (tmp_path);
         }
-      priv->project_dir = dir_path;
+      self->project_dir = dir_path;
 
       /* Finally, store the raw path too */
-      priv->project_filepath = g_strdup (path);
+      self->project_filepath = g_strdup (path);
 
       g_object_unref (file);
       g_object_unref (dir);
@@ -849,22 +830,20 @@ _update_project_path (FrogrMainView *self, const gchar *path)
 static void
 _update_window_title (FrogrMainView *self, gboolean dirty)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
 #if USE_HEADER_BAR
   gchar *title = NULL;
   gchar *subtitle = NULL;
 
-  title = priv->project_name
-    ? g_strdup_printf ("%s%s", (dirty ? "*" : ""), priv->project_name)
+  title = self->project_name
+    ? g_strdup_printf ("%s%s", (dirty ? "*" : ""), self->project_name)
     : g_strdup (APP_SHORTNAME);
 
-  subtitle = priv->project_name
-    ? g_strdup_printf ("%s", priv->project_dir)
+  subtitle = self->project_name
+    ? g_strdup_printf ("%s", self->project_dir)
     : NULL;
 
-  gtk_header_bar_set_title (GTK_HEADER_BAR (priv->header_bar), title);
-  gtk_header_bar_set_subtitle (GTK_HEADER_BAR (priv->header_bar), subtitle);
+  gtk_header_bar_set_title (GTK_HEADER_BAR (self->header_bar), title);
+  gtk_header_bar_set_subtitle (GTK_HEADER_BAR (self->header_bar), subtitle);
 
   g_free (subtitle);
   g_free (title);
@@ -874,9 +853,9 @@ _update_window_title (FrogrMainView *self, gboolean dirty)
   gchar *session_string = NULL;
   gchar *window_title = NULL;
 
-  session_string = priv->project_name
+  session_string = self->project_name
     ? g_strdup_printf ("%s%s (%s) - ", (dirty ? "*" : ""),
-                       priv->project_name, priv->project_dir)
+                       self->project_name, self->project_dir)
     : g_strdup("");
 
   window_title = g_strdup_printf ("%s%s", session_string, APP_SHORTNAME);
@@ -891,11 +870,9 @@ static void
 _on_menu_item_activated (GSimpleAction *action, GVariant *parameter, gpointer data)
 {
   FrogrMainView *self = NULL;
-  FrogrMainViewPrivate *priv = NULL;
   const gchar *action_name = NULL;
 
   self = FROGR_MAIN_VIEW (data);
-  priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
   action_name = g_action_get_name (G_ACTION (action));
 
   if (!g_strcmp0 (action_name, ACTION_UPLOAD_ALL))
@@ -923,11 +900,11 @@ _on_menu_item_activated (GSimpleAction *action, GVariant *parameter, gpointer da
   else if (!g_strcmp0 (action_name, ACTION_SAVE_PROJECT_AS))
     _save_project_as_dialog (self);
   else if (!g_strcmp0 (action_name, ACTION_AUTHORIZE))
-    frogr_controller_show_auth_dialog (priv->controller);
+    frogr_controller_show_auth_dialog (self->controller);
   else if (!g_strcmp0 (action_name, ACTION_PREFERENCES))
-    frogr_controller_show_settings_dialog (priv->controller);
+    frogr_controller_show_settings_dialog (self->controller);
   else if (!g_strcmp0 (action_name, ACTION_ABOUT))
-    frogr_controller_show_about_dialog (priv->controller);
+    frogr_controller_show_about_dialog (self->controller);
   else if (!g_strcmp0 (action_name, ACTION_HELP))
     frogr_util_open_uri ("help:frogr");
   else if (!g_strcmp0 (action_name, ACTION_QUIT))
@@ -945,18 +922,18 @@ _on_radio_menu_item_activated (GSimpleAction *action, GVariant *parameter, gpoin
 static void
 _on_radio_menu_item_changed (GSimpleAction *action, GVariant *parameter, gpointer data)
 {
-  FrogrMainViewPrivate *priv = NULL;
+  FrogrMainView *self = NULL;
   const gchar *action_name = NULL;
   const gchar *target = NULL;
 
-  priv = FROGR_MAIN_VIEW_GET_PRIVATE (data);
+  self = FROGR_MAIN_VIEW (data);
   action_name = g_action_get_name (G_ACTION (action));
   target = g_variant_get_string (parameter, NULL);
 
   if (!g_strcmp0 (action_name, ACTION_LOGIN_AS))
     {
       DEBUG ("Selected account: %s", target);
-      frogr_controller_set_active_account (priv->controller, target);
+      frogr_controller_set_active_account (self->controller, target);
     }
   else if (!g_strcmp0 (action_name, ACTION_SORT_BY))
     {
@@ -970,9 +947,9 @@ _on_radio_menu_item_changed (GSimpleAction *action, GVariant *parameter, gpointe
         criteria = SORT_BY_SIZE;
 
       /* Update the UI and save settings */
-      _reorder_pictures (FROGR_MAIN_VIEW (data), criteria, priv->sorting_reversed);
-      frogr_config_set_mainview_sorting_criteria (priv->config, criteria);
-      frogr_config_save_settings (priv->config);
+      _reorder_pictures (FROGR_MAIN_VIEW (data), criteria, self->sorting_reversed);
+      frogr_config_set_mainview_sorting_criteria (self->config, criteria);
+      frogr_config_save_settings (self->config);
     }
   else
     g_assert_not_reached ();
@@ -994,30 +971,28 @@ _on_toggle_menu_item_activated (GSimpleAction *action, GVariant *parameter, gpoi
 static void
 _on_toggle_menu_item_changed (GSimpleAction *action, GVariant *parameter, gpointer data)
 {
-  FrogrMainView *mainview = FROGR_MAIN_VIEW (data);
-  FrogrMainViewPrivate *priv = NULL;
+  FrogrMainView *self = FROGR_MAIN_VIEW (data);
   const gchar *action_name = NULL;
   gboolean checked;
 
-  priv = FROGR_MAIN_VIEW_GET_PRIVATE (data);
   action_name = g_action_get_name (G_ACTION (action));
   checked = g_variant_get_boolean (parameter);
 
   if (!g_strcmp0 (action_name, ACTION_ENABLE_TOOLTIPS))
     {
-      frogr_config_set_mainview_enable_tooltips (priv->config, checked);
-      priv->tooltips_enabled = checked;
+      frogr_config_set_mainview_enable_tooltips (self->config, checked);
+      self->tooltips_enabled = checked;
     }
   else if (!g_strcmp0 (action_name, ACTION_SORT_IN_REVERSE_ORDER))
     {
-      _reorder_pictures (mainview, priv->sorting_criteria, checked);
-      frogr_config_set_mainview_sorting_reversed (priv->config, checked);
+      _reorder_pictures (self, self->sorting_criteria, checked);
+      frogr_config_set_mainview_sorting_reversed (self->config, checked);
     }
   else
     g_assert_not_reached ();
 
   /* State for check menu items should be immediately stored */
-  frogr_config_save_settings (priv->config);
+  frogr_config_save_settings (self->config);
 
   /* Update the action */
   g_simple_action_set_state (action, parameter);
@@ -1026,40 +1001,33 @@ _on_toggle_menu_item_changed (GSimpleAction *action, GVariant *parameter, gpoint
 static void
 _quit_application (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = NULL;
-
-  priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-  g_application_quit (G_APPLICATION (priv->gtk_app));
+  g_application_quit (G_APPLICATION (self->gtk_app));
 }
 
 #ifdef PLATFORM_MAC
 static void
 _tweak_app_menu_for_mac (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = NULL;
   GMenuModel *menu = NULL;
 
-  priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
   /* Hide the Section including the 'Help' menu item */
-  g_menu_remove (G_MENU (priv->app_menu), 2);
+  g_menu_remove (G_MENU (self->app_menu), 2);
 
   /* The section removed contained the 'About' and 'Quit' items, so
      create new ones and place them in their right places */
   menu = G_MENU_MODEL (g_menu_new ());
   g_menu_append_item (G_MENU (menu), g_menu_item_new (_("_About"), "app.about"));
-  g_menu_insert_section (G_MENU (priv->app_menu), 0, NULL, menu);
+  g_menu_insert_section (G_MENU (self->app_menu), 0, NULL, menu);
 
   menu = G_MENU_MODEL (g_menu_new ());
   g_menu_append_item (G_MENU (menu), g_menu_item_new (_("_Quit"), "app.quit"));
-  g_menu_insert_section (G_MENU (priv->app_menu), 3, NULL, menu);
+  g_menu_insert_section (G_MENU (self->app_menu), 3, NULL, menu);
 }
 #endif
 
 static void
 _populate_accounts_submenu (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = NULL;
   FrogrAccount *account = NULL;
   GMenuItem *accounts_menu;
   GMenuItem *menu_item = NULL;
@@ -1070,14 +1038,12 @@ _populate_accounts_submenu (FrogrMainView *self)
   const gchar *username = NULL;
   gchar *action_str = NULL;
 
-  priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
   /* Remove a previous submenu if present (it will be regenerated later) */
-  section = g_menu_model_get_item_link (priv->app_menu, 0, G_MENU_LINK_SECTION);
+  section = g_menu_model_get_item_link (self->app_menu, 0, G_MENU_LINK_SECTION);
   if (g_menu_model_get_n_items (G_MENU_MODEL (section)) > 1)
     g_menu_remove (G_MENU (section), 1);
 
-  accounts = frogr_controller_get_all_accounts (priv->controller);
+  accounts = frogr_controller_get_all_accounts (self->controller);
   if (!g_slist_length (accounts))
     return;
 
@@ -1098,7 +1064,7 @@ _populate_accounts_submenu (FrogrMainView *self)
       if (frogr_account_is_active (account))
         {
           GAction *action = NULL;
-          action = g_action_map_lookup_action (G_ACTION_MAP (priv->gtk_app), ACTION_LOGIN_AS);
+          action = g_action_map_lookup_action (G_ACTION_MAP (self->gtk_app), ACTION_LOGIN_AS);
           g_action_activate (action, g_variant_new_string (username));
         }
     }
@@ -1111,13 +1077,11 @@ _populate_accounts_submenu (FrogrMainView *self)
 static void
 _initialize_drag_n_drop (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
-  gtk_drag_dest_set (priv->icon_view, GTK_DEST_DEFAULT_ALL,
+  gtk_drag_dest_set (self->icon_view, GTK_DEST_DEFAULT_ALL,
                      NULL, 0, GDK_ACTION_COPY );
-  gtk_drag_dest_add_uri_targets (priv->icon_view);
+  gtk_drag_dest_add_uri_targets (self->icon_view);
 
-  g_signal_connect(G_OBJECT(priv->icon_view), "drag-data-received",
+  g_signal_connect(G_OBJECT(self->icon_view), "drag-data-received",
                    G_CALLBACK(_on_icon_view_drag_data_received),
                    self);
 }
@@ -1131,17 +1095,15 @@ _on_icon_view_drag_data_received (GtkWidget *widget,
                                   gpointer data)
 {
   FrogrMainView *self = NULL;
-  FrogrMainViewPrivate *priv = NULL;
   GdkAtom target;
   GSList *fileuris_list = NULL;
   gchar **fileuris_array = NULL;
   gint i;
 
   self = FROGR_MAIN_VIEW (data);
-  priv = FROGR_MAIN_VIEW_GET_PRIVATE (data);
 
   /* Do nothing when the application is busy doing something else */
-  if (FROGR_STATE_IS_BUSY(frogr_controller_get_state (priv->controller)))
+  if (FROGR_STATE_IS_BUSY(frogr_controller_get_state (self->controller)))
     return;
 
   target = gtk_selection_data_get_target (selection_data);
@@ -1171,26 +1133,25 @@ _on_icon_view_key_press_event (GtkWidget *widget,
                                GdkEventKey *event,
                                gpointer data)
 {
-  FrogrMainView *mainview = FROGR_MAIN_VIEW (data);
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (data);
+  FrogrMainView *self = FROGR_MAIN_VIEW (data);
 
   /* Actions are only allowed in IDLE state */
-  if (frogr_controller_get_state (priv->controller) != FROGR_STATE_IDLE)
+  if (frogr_controller_get_state (self->controller) != FROGR_STATE_IDLE)
     return TRUE;
 
   /* Do nothing if there's no picture loaded yet */
-  if (!_n_pictures (mainview))
+  if (!_n_pictures (self))
     return TRUE;
 
   /* Remove selected pictures if pressed Supr */
   if ((event->type == GDK_KEY_PRESS) && (event->keyval == GDK_KEY_Delete))
-    _remove_selected_pictures (mainview);
+    _remove_selected_pictures (self);
 
   /* Show contextual menu if pressed the 'Menu' key */
   if (event->type == GDK_KEY_PRESS && event->keyval == GDK_KEY_Menu
-      && priv->n_selected_pictures > 0)
+      && self->n_selected_pictures > 0)
     {
-      GtkMenu *menu = GTK_MENU (priv->pictures_ctxt_menu);
+      GtkMenu *menu = GTK_MENU (self->pictures_ctxt_menu);
       gtk_menu_popup (menu, NULL, NULL, NULL, NULL,
                       0, gtk_get_current_event_time ());
     }
@@ -1201,36 +1162,32 @@ _on_icon_view_key_press_event (GtkWidget *widget,
 static void
 _clear_reference_picture (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-  if (priv->reference_picture)
+  if (self->reference_picture)
     {
-      gtk_tree_path_free (priv->reference_picture);
-      priv->reference_picture = NULL;
+      gtk_tree_path_free (self->reference_picture);
+      self->reference_picture = NULL;
     }
 }
 
 static void
 _update_reference_picture (FrogrMainView *self, GtkTreePath *new_path)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
   _clear_reference_picture (self);
   if (new_path)
-    priv->reference_picture = gtk_tree_path_copy (new_path);
+    self->reference_picture = gtk_tree_path_copy (new_path);
 }
 
 static void
-_handle_selection_for_button_event_and_path (FrogrMainView *mainview,
+_handle_selection_for_button_event_and_path (FrogrMainView *self,
                                              GdkEventButton *event,
                                              GtkTreePath *path)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (mainview);
   gboolean using_primary_key = event->state & GDK_PRIMARY_MASK;
   gboolean using_shift_key = event->state & GDK_SHIFT_MASK;
   gboolean is_single_click = event->type == GDK_BUTTON_PRESS;
   gboolean is_double_click = event->type == GDK_2BUTTON_PRESS;
   gboolean is_primary_btn = event->button == 1;
-  gboolean path_selected = gtk_icon_view_path_is_selected (GTK_ICON_VIEW (priv->icon_view), path);
+  gboolean path_selected = gtk_icon_view_path_is_selected (GTK_ICON_VIEW (self->icon_view), path);
 
   /* Clicking with the secondary button in a selected element means
      we just want to open the contextual menu, so do nothing */
@@ -1240,17 +1197,17 @@ _handle_selection_for_button_event_and_path (FrogrMainView *mainview,
   /* Handle simple cases (no modifiers) */
   if (!using_primary_key && !using_shift_key)
     {
-      gint n_selected_pictures = priv->n_selected_pictures;
+      gint n_selected_pictures = self->n_selected_pictures;
 
       if (!is_double_click)
-        _deselect_all_pictures (mainview);
+        _deselect_all_pictures (self);
 
       /* We will just select the pointed element if it's not selected yet
          or if it is, but it belongs to a multiple selection previously done */
       if (!path_selected || n_selected_pictures > 1)
         {
-          gtk_icon_view_select_path (GTK_ICON_VIEW (priv->icon_view), path);
-          _update_reference_picture (mainview, path);
+          gtk_icon_view_select_path (GTK_ICON_VIEW (self->icon_view), path);
+          _update_reference_picture (self, path);
         }
 
       /* Already handled */
@@ -1269,14 +1226,14 @@ _handle_selection_for_button_event_and_path (FrogrMainView *mainview,
       if (!using_shift_key || path_selected)
         {
           if (!using_shift_key)
-            _clear_reference_picture (mainview);
+            _clear_reference_picture (self);
 
           if (path_selected)
-            gtk_icon_view_unselect_path (GTK_ICON_VIEW (priv->icon_view), path);
+            gtk_icon_view_unselect_path (GTK_ICON_VIEW (self->icon_view), path);
           else
             {
-              gtk_icon_view_select_path (GTK_ICON_VIEW (priv->icon_view), path);
-              _update_reference_picture (mainview, path);
+              gtk_icon_view_select_path (GTK_ICON_VIEW (self->icon_view), path);
+              _update_reference_picture (self, path);
             }
 
           /* Already handled */
@@ -1285,12 +1242,12 @@ _handle_selection_for_button_event_and_path (FrogrMainView *mainview,
     }
 
   /* Finally, handle special cases with Shift */
-  if (priv->reference_picture)
+  if (self->reference_picture)
     {
       GtkTreeIter start_iter;
-      if (gtk_tree_model_get_iter (priv->tree_model, &start_iter, priv->reference_picture))
+      if (gtk_tree_model_get_iter (self->tree_model, &start_iter, self->reference_picture))
         {
-          GtkTreePath *start_path = priv->reference_picture;
+          GtkTreePath *start_path = self->reference_picture;
           GtkTreePath *end_path = path;
           GtkTreePath *current_path = NULL;
 
@@ -1306,12 +1263,12 @@ _handle_selection_for_button_event_and_path (FrogrMainView *mainview,
              we first unselect everything and then start selecting, but keeping
              the reference icon anyway, since we will just extend from there */
           if (!using_primary_key)
-            gtk_icon_view_unselect_all (GTK_ICON_VIEW (priv->icon_view));
+            gtk_icon_view_unselect_all (GTK_ICON_VIEW (self->icon_view));
 
           current_path = gtk_tree_path_copy (start_path);
           while (gtk_tree_path_compare (current_path, end_path) <= 0)
             {
-              gtk_icon_view_select_path (GTK_ICON_VIEW (priv->icon_view), current_path);
+              gtk_icon_view_select_path (GTK_ICON_VIEW (self->icon_view), current_path);
               gtk_tree_path_next(current_path);
             }
           gtk_tree_path_free (current_path);
@@ -1322,8 +1279,8 @@ _handle_selection_for_button_event_and_path (FrogrMainView *mainview,
     }
 
   /* If nothing was previously selected when using Shift, treat it as a normal click */
-  gtk_icon_view_select_path (GTK_ICON_VIEW (priv->icon_view), path);
-  _update_reference_picture (mainview, path);
+  gtk_icon_view_select_path (GTK_ICON_VIEW (self->icon_view), path);
+  _update_reference_picture (self, path);
 }
 
 gboolean
@@ -1331,8 +1288,7 @@ _on_icon_view_button_press_event (GtkWidget *widget,
                                   GdkEventButton *event,
                                   gpointer data)
 {
-  FrogrMainView *mainview = FROGR_MAIN_VIEW (data);
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (data);
+  FrogrMainView *self = FROGR_MAIN_VIEW (data);
   gboolean using_primary_key = event->state & GDK_PRIMARY_MASK;
   gboolean using_shift_key = event->state & GDK_SHIFT_MASK;
   GtkTreePath *new_path = NULL;
@@ -1341,7 +1297,7 @@ _on_icon_view_button_press_event (GtkWidget *widget,
   gtk_widget_grab_focus(widget);
 
   /* Actions are only allowed in IDLE state */
-  if (frogr_controller_get_state (priv->controller) != FROGR_STATE_IDLE)
+  if (frogr_controller_get_state (self->controller) != FROGR_STATE_IDLE)
     return TRUE;
 
   /* Only left and right clicks are supported */
@@ -1349,11 +1305,11 @@ _on_icon_view_button_press_event (GtkWidget *widget,
     return TRUE;
 
   /* Do nothing if there's no picture loaded yet */
-  if (!_n_pictures (mainview))
+  if (!_n_pictures (self))
     return TRUE;
 
   /* Check if we clicked on top of an item */
-  if (gtk_icon_view_get_item_at_pos (GTK_ICON_VIEW (priv->icon_view),
+  if (gtk_icon_view_get_item_at_pos (GTK_ICON_VIEW (self->icon_view),
                                      event->x, event->y, &new_path, NULL))
     {
       gboolean is_primary_btn = event->button == 1;
@@ -1361,18 +1317,18 @@ _on_icon_view_button_press_event (GtkWidget *widget,
       gboolean is_double_click = event->type == GDK_2BUTTON_PRESS;
 
       /* Decide whether we need to change the selection and how */
-      _handle_selection_for_button_event_and_path (mainview, event, new_path);
+      _handle_selection_for_button_event_and_path (self, event, new_path);
 
       /* Perform the right action: edit picture or show ctxt menu */
       if (is_primary_btn && is_double_click && !using_primary_key)
         {
           /* edit selected item */
-          _edit_selected_pictures (mainview);
+          _edit_selected_pictures (self);
         }
       else if (!is_primary_btn && is_single_click)
         {
           /* Show contextual menu */
-          gtk_menu_popup (GTK_MENU (priv->pictures_ctxt_menu),
+          gtk_menu_popup (GTK_MENU (self->pictures_ctxt_menu),
               NULL, NULL, NULL, NULL,
               event->button,
               gtk_get_current_event_time ());
@@ -1385,7 +1341,7 @@ _on_icon_view_button_press_event (GtkWidget *widget,
 
   /* Make sure we reset everything if simply clicking outside of any picture*/
   if (!using_primary_key && !using_shift_key)
-    _deselect_all_pictures (mainview);
+    _deselect_all_pictures (self);
 
   return FALSE;
 }
@@ -1407,7 +1363,6 @@ _on_icon_view_query_tooltip (GtkWidget *icon_view,
                              gpointer data)
 {
   FrogrMainView *self = NULL;
-  FrogrMainViewPrivate *priv = NULL;
   GtkTreePath *path;
   gint bw_x;
   gint bw_y;
@@ -1417,10 +1372,9 @@ _on_icon_view_query_tooltip (GtkWidget *icon_view,
     return FALSE;
 
   self = FROGR_MAIN_VIEW (data);
-  priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
 
   /* Disabled by configuration */
-  if (!frogr_config_get_mainview_enable_tooltips (priv->config))
+  if (!frogr_config_get_mainview_enable_tooltips (self->config))
     return FALSE;
 
   /* Check whether we're asking for a tooltip over a picture */
@@ -1438,8 +1392,8 @@ _on_icon_view_query_tooltip (GtkWidget *icon_view,
       const gchar *datetime = NULL;
 
       /* Get needed information */
-      gtk_tree_model_get_iter (priv->tree_model, &iter, path);
-      gtk_tree_model_get (priv->tree_model,
+      gtk_tree_model_get_iter (self->tree_model, &iter, path);
+      gtk_tree_model_get (self->tree_model,
                           &iter,
                           FPICTURE_COL, &picture,
                           -1);
@@ -1489,21 +1443,20 @@ static void
 _on_icon_view_selection_changed (GtkWidget *icon_view, gpointer data)
 {
   FrogrMainView *self = FROGR_MAIN_VIEW (data);
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
   GList *selected_pictures = NULL;
   gint len = 0;
 
   /* We save the value here to avoid traversing all the list whenever
      we need to check the number of selected pictures */
   selected_pictures =
-    gtk_icon_view_get_selected_items (GTK_ICON_VIEW (priv->icon_view));
+    gtk_icon_view_get_selected_items (GTK_ICON_VIEW (self->icon_view));
 
   len = g_list_length (selected_pictures);
 
   g_list_foreach (selected_pictures, (GFunc)gtk_tree_path_free, NULL);
   g_list_free (selected_pictures);
 
-  priv->n_selected_pictures = len;
+  self->n_selected_pictures = len;
 
   /* Update sensitiveness for actions */
   _update_sensitiveness (self);
@@ -1512,23 +1465,20 @@ _on_icon_view_selection_changed (GtkWidget *icon_view, gpointer data)
 static void
 _deselect_all_pictures (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
-  gtk_icon_view_unselect_all (GTK_ICON_VIEW (priv->icon_view));
+  gtk_icon_view_unselect_all (GTK_ICON_VIEW (self->icon_view));
   _clear_reference_picture (self);
 }
 
 static GSList *
 _get_selected_pictures (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
   GSList *pictures = NULL;
   GList *selected_pictures;
   GList *item;
 
   /* Iterate over selected items */
   selected_pictures =
-    gtk_icon_view_get_selected_items (GTK_ICON_VIEW (priv->icon_view));
+    gtk_icon_view_get_selected_items (GTK_ICON_VIEW (self->icon_view));
   for (item = selected_pictures; item; item = g_list_next (item))
     {
       FrogrPicture *picture;
@@ -1537,8 +1487,8 @@ _get_selected_pictures (FrogrMainView *self)
 
       /* Get needed information */
       path = (GtkTreePath *)(item->data);
-      gtk_tree_model_get_iter (priv->tree_model, &iter, path);
-      gtk_tree_model_get (priv->tree_model,
+      gtk_tree_model_get_iter (self->tree_model, &iter, path);
+      gtk_tree_model_get (self->tree_model,
                           &iter,
                           FPICTURE_COL, &picture,
                           -1);
@@ -1556,10 +1506,8 @@ _get_selected_pictures (FrogrMainView *self)
 static gint
 _n_pictures (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
   /* Just return the number of pictures in the model */
-  return frogr_model_n_pictures (priv->model);
+  return frogr_model_n_pictures (self->model);
 }
 
 static void
@@ -1576,10 +1524,8 @@ _open_project_dialog_response_cb (GtkDialog *dialog,
       filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (dialog));
       if (filename != NULL)
         {
-          FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
           /* Load from disk and update project's path */
-          if (frogr_controller_open_project_from_file (priv->controller, filename))
+          if (frogr_controller_open_project_from_file (self->controller, filename))
             _update_window_title (self, FALSE);
           g_free (filename);
         }
@@ -1622,10 +1568,8 @@ _open_project_dialog (FrogrMainView *self)
 static void
 _save_current_project (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
-  if (priv->project_filepath)
-    _save_project_to_file (self, priv->project_filepath);
+  if (self->project_filepath)
+    _save_project_to_file (self, self->project_filepath);
   else
     _save_project_as_dialog (self);
 }
@@ -1633,10 +1577,8 @@ _save_current_project (FrogrMainView *self)
 static void
 _save_project_to_file (FrogrMainView *self, const gchar *filepath)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
   /* Save to disk and update project's path */
-  if (frogr_controller_save_project_to_file (priv->controller, filepath))
+  if (frogr_controller_save_project_to_file (self->controller, filepath))
     _update_window_title (self, FALSE);
 }
 
@@ -1778,9 +1720,7 @@ _load_pictures_dialog (FrogrMainView *self)
 static gboolean
 _pictures_loaded_required_check (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
-  if (!frogr_model_get_pictures (priv->model))
+  if (!frogr_model_get_pictures (self->model))
     {
       frogr_util_show_error_dialog (GTK_WINDOW (self),
                                     _("You don't have any picture added yet"));
@@ -1793,9 +1733,7 @@ _pictures_loaded_required_check (FrogrMainView *self)
 static gboolean
 _pictures_selected_required_check (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
-  if (priv->n_selected_pictures == 0)
+  if (self->n_selected_pictures == 0)
     {
       frogr_util_show_error_dialog (GTK_WINDOW (self),
                                     _("You need to select some pictures first"));
@@ -1808,65 +1746,55 @@ _pictures_selected_required_check (FrogrMainView *self)
 static void
 _add_tags_to_pictures (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
   if (!_pictures_selected_required_check (self))
     return;
 
   /* Call the controller to add tags to them */
-  frogr_controller_show_add_tags_dialog (priv->controller,
+  frogr_controller_show_add_tags_dialog (self->controller,
                                          _get_selected_pictures (self));
 }
 
 static void
 _add_pictures_to_new_set (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
   if (!_pictures_selected_required_check (self))
     return;
 
   /* Call the controller to add the pictures to sets */
-  frogr_controller_show_create_new_set_dialog (priv->controller,
+  frogr_controller_show_create_new_set_dialog (self->controller,
                                                _get_selected_pictures (self));
 }
 
 static void
 _add_pictures_to_existing_set (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
   if (!_pictures_selected_required_check (self))
     return;
 
   /* Call the controller to add the pictures to sets */
-  frogr_controller_show_add_to_set_dialog (priv->controller,
+  frogr_controller_show_add_to_set_dialog (self->controller,
                                            _get_selected_pictures (self));
 }
 
 static void
 _add_pictures_to_group (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
   if (!_pictures_selected_required_check (self))
     return;
 
   /* Call the controller to add the pictures to sets */
-  frogr_controller_show_add_to_group_dialog (priv->controller,
+  frogr_controller_show_add_to_group_dialog (self->controller,
                                              _get_selected_pictures (self));
 }
 
 static void
 _edit_selected_pictures (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
   if (!_pictures_selected_required_check (self))
     return;
 
   /* Call the controller to edit them */
-  frogr_controller_show_details_dialog (priv->controller,
+  frogr_controller_show_details_dialog (self->controller,
                                         _get_selected_pictures (self));
 }
 
@@ -1887,7 +1815,6 @@ _open_pictures_in_external_viewer (FrogrMainView *self)
 static void
 _remove_selected_pictures (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
   GSList *selected_pictures;
   GSList *item;
 
@@ -1899,7 +1826,7 @@ _remove_selected_pictures (FrogrMainView *self)
   for (item = selected_pictures; item; item = g_slist_next (item))
     {
       FrogrPicture *picture = FROGR_PICTURE (item->data);
-      frogr_model_remove_picture (priv->model, picture);
+      frogr_model_remove_picture (self->model, picture);
     }
 
   /* Update UI */
@@ -1913,26 +1840,22 @@ _remove_selected_pictures (FrogrMainView *self)
 static void
 _load_pictures (FrogrMainView *self, GSList *fileuris)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-  frogr_controller_load_pictures (priv->controller, fileuris);
+  frogr_controller_load_pictures (self->controller, fileuris);
 }
 
 static void
 _upload_pictures (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
   if (!_pictures_loaded_required_check (self))
     return;
 
   _deselect_all_pictures (self);
-  frogr_controller_upload_pictures (priv->controller, priv->sorted_pictures);
+  frogr_controller_upload_pictures (self->controller, self->sorted_pictures);
 }
 
 static void
 _reorder_pictures (FrogrMainView *self, SortingCriteria criteria, gboolean reversed)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
   GSList *list_as_loaded = NULL;
   GSList *current_list = NULL;
   GSList *current_item = NULL;
@@ -1942,8 +1865,8 @@ _reorder_pictures (FrogrMainView *self, SortingCriteria criteria, gboolean rever
 
   gchar *property_name = NULL;
 
-  priv->sorting_criteria = criteria;
-  priv->sorting_reversed = reversed;
+  self->sorting_criteria = criteria;
+  self->sorting_reversed = reversed;
 
   if (!_n_pictures (self))
     return;
@@ -1973,36 +1896,36 @@ _reorder_pictures (FrogrMainView *self, SortingCriteria criteria, gboolean rever
 
   /* Temporarily save the current list, and alloc an array to
      represent the new order compared to the old positions */
-  current_list = g_slist_copy (priv->sorted_pictures);
+  current_list = g_slist_copy (self->sorted_pictures);
   new_order = g_new0 (gint, g_slist_length (current_list));
 
   /* Use the original list (as loaded) as reference for sorting */
-  list_as_loaded = g_slist_copy (frogr_model_get_pictures (priv->model));
+  list_as_loaded = g_slist_copy (frogr_model_get_pictures (self->model));
   if (property_name)
     list_as_loaded = g_slist_sort_with_data (list_as_loaded,
                                              (GCompareDataFunc) _compare_pictures_by_property,
                                              (gchar*) property_name);
   /* Update the list of pictures */
-  if (priv->sorted_pictures)
+  if (self->sorted_pictures)
     {
-      g_slist_foreach (priv->sorted_pictures, (GFunc)g_object_unref, NULL);
-      g_slist_free (priv->sorted_pictures);
+      g_slist_foreach (self->sorted_pictures, (GFunc)g_object_unref, NULL);
+      g_slist_free (self->sorted_pictures);
     }
-  priv->sorted_pictures = list_as_loaded;
-  g_slist_foreach (priv->sorted_pictures, (GFunc)g_object_ref, NULL);
+  self->sorted_pictures = list_as_loaded;
+  g_slist_foreach (self->sorted_pictures, (GFunc)g_object_ref, NULL);
 
   /* If we're reordering in reverse order, reverse the result list */
   if (reversed)
-    priv->sorted_pictures = g_slist_reverse (priv->sorted_pictures);
+    self->sorted_pictures = g_slist_reverse (self->sorted_pictures);
 
   /* Build the new_order array and update the treeview */
   current_pos = 0;
   for (current_item = current_list; current_item; current_item = g_slist_next (current_item))
     {
-      new_pos = g_slist_index (priv->sorted_pictures, current_item->data);
+      new_pos = g_slist_index (self->sorted_pictures, current_item->data);
       new_order[new_pos] = current_pos++;
     }
-  gtk_list_store_reorder (GTK_LIST_STORE (priv->tree_model), new_order);
+  gtk_list_store_reorder (GTK_LIST_STORE (self->tree_model), new_order);
 
   g_slist_free (current_list);
   g_free (new_order);
@@ -2078,10 +2001,8 @@ _progress_dialog_response (GtkDialog *dialog,
                            gpointer data)
 {
   FrogrMainView *self = FROGR_MAIN_VIEW (data);
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
-  frogr_controller_cancel_ongoing_requests (priv->controller);
-  gtk_widget_hide (priv->progress_dialog);
+  frogr_controller_cancel_ongoing_requests (self->controller);
+  gtk_widget_hide (self->progress_dialog);
 }
 
 static gboolean
@@ -2090,10 +2011,8 @@ _progress_dialog_delete_event (GtkWidget *widget,
                                gpointer data)
 {
   FrogrMainView *self = FROGR_MAIN_VIEW (data);
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
-  frogr_controller_cancel_ongoing_requests (priv->controller);
-  gtk_widget_hide (priv->progress_dialog);
+  frogr_controller_cancel_ongoing_requests (self->controller);
+  gtk_widget_hide (self->progress_dialog);
 
   return TRUE;
 }
@@ -2103,8 +2022,8 @@ _controller_state_changed (FrogrController *controller,
                            FrogrControllerState state,
                            gpointer data)
 {
-  FrogrMainView *mainview = FROGR_MAIN_VIEW (data);
-  _update_ui (mainview);
+  FrogrMainView *self = FROGR_MAIN_VIEW (data);
+  _update_ui (self);
 }
 
 static void
@@ -2112,23 +2031,23 @@ _controller_active_account_changed (FrogrController *controller,
                                     FrogrAccount *account,
                                     gpointer data)
 {
-  FrogrMainView *mainview = NULL;
+  FrogrMainView *self = NULL;
 
-  mainview = FROGR_MAIN_VIEW (data);
-  _update_state_description (mainview);
-  _update_ui (mainview);
+  self = FROGR_MAIN_VIEW (data);
+  _update_state_description (self);
+  _update_ui (self);
 }
 
 static void
 _controller_accounts_changed (FrogrController *controller,
                               gpointer data)
 {
-  FrogrMainView *mainview = NULL;
+  FrogrMainView *self = NULL;
 
   /* Re-populate the accounts submenu */
-  mainview = FROGR_MAIN_VIEW (data);
-  _populate_accounts_submenu (mainview);
-  _update_ui (mainview);
+  self = FROGR_MAIN_VIEW (data);
+  _populate_accounts_submenu (self);
+  _update_ui (self);
 
   DEBUG ("%s", "Accounts list changed");
 }
@@ -2139,7 +2058,6 @@ _model_picture_added (FrogrController *controller,
                       gpointer data)
 {
   FrogrMainView *self = FROGR_MAIN_VIEW (data);
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
   GdkPixbuf *pixbuf = NULL;
   const gchar *fileuri = NULL;
   GtkTreeIter iter;
@@ -2148,19 +2066,19 @@ _model_picture_added (FrogrController *controller,
   fileuri = frogr_picture_get_fileuri (picture);
   pixbuf = frogr_picture_get_pixbuf (picture);
 
-  gtk_list_store_append (GTK_LIST_STORE (priv->tree_model), &iter);
-  gtk_list_store_set (GTK_LIST_STORE (priv->tree_model), &iter,
+  gtk_list_store_append (GTK_LIST_STORE (self->tree_model), &iter);
+  gtk_list_store_set (GTK_LIST_STORE (self->tree_model), &iter,
                       FILEURI_COL, fileuri,
                       PIXBUF_COL, pixbuf,
                       FPICTURE_COL, picture,
                       -1);
 
   /* Update the list */
-  priv->sorted_pictures = g_slist_append (priv->sorted_pictures,
+  self->sorted_pictures = g_slist_append (self->sorted_pictures,
                                           g_object_ref (picture));
 
   /* Reorder if needed */
-  if (priv->sorting_criteria != SORT_AS_LOADED || priv->sorting_reversed)
+  if (self->sorting_criteria != SORT_AS_LOADED || self->sorting_reversed)
     frogr_main_view_reorder_pictures (self);
 
   /* Update upload size in state description */
@@ -2173,14 +2091,11 @@ _model_picture_removed (FrogrController *controller,
                         gpointer data)
 {
   FrogrMainView *self = FROGR_MAIN_VIEW (data);
-  FrogrMainViewPrivate *priv = NULL;
   GtkTreeModel *tree_model = NULL;
   GtkTreeIter iter;
 
   /* Check items in the icon_view */
-  priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
-  tree_model = gtk_icon_view_get_model (GTK_ICON_VIEW (priv->icon_view));
+  tree_model = gtk_icon_view_get_model (GTK_ICON_VIEW (self->icon_view));
   if (gtk_tree_model_get_iter_first (tree_model, &iter))
     {
       /* Look for the picture and remove it */
@@ -2190,7 +2105,7 @@ _model_picture_removed (FrogrController *controller,
           FrogrPicture *picture_from_ui;
 
           /* Get needed information */
-          gtk_tree_model_get (priv->tree_model,
+          gtk_tree_model_get (self->tree_model,
                               &iter,
                               FPICTURE_COL, &picture_from_ui,
                               -1);
@@ -2198,10 +2113,10 @@ _model_picture_removed (FrogrController *controller,
           if (picture_from_ui == picture)
             {
               /* Remove from the GtkIconView and break loop */
-              gtk_list_store_remove (GTK_LIST_STORE (priv->tree_model), &iter);
+              gtk_list_store_remove (GTK_LIST_STORE (self->tree_model), &iter);
 
               /* Update the list */
-              priv->sorted_pictures = g_slist_remove (priv->sorted_pictures, picture);
+              self->sorted_pictures = g_slist_remove (self->sorted_pictures, picture);
               g_object_unref (picture);
 
               found = TRUE;
@@ -2230,24 +2145,19 @@ _model_deserialized (FrogrController *controller, gpointer data)
 }
 
 static void
-_update_state_description (FrogrMainView *mainview)
+_update_state_description (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = NULL;
-
-  priv = FROGR_MAIN_VIEW_GET_PRIVATE (mainview);
-
-  g_free (priv->state_description);
-  priv->state_description = _craft_state_description (mainview);
+  g_free (self->state_description);
+  self->state_description = _craft_state_description (self);
 
   /* Do not force updating the status bar when loading pictures */
-  if (frogr_controller_get_state (priv->controller) != FROGR_STATE_LOADING_PICTURES)
-    frogr_main_view_set_status_text (mainview, priv->state_description);
+  if (frogr_controller_get_state (self->controller) != FROGR_STATE_LOADING_PICTURES)
+    frogr_main_view_set_status_text (self, self->state_description);
 }
 
 static gchar *
-_craft_state_description (FrogrMainView *mainview)
+_craft_state_description (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = NULL;
   FrogrAccount *account = NULL;
   GSList *pictures = NULL;
   guint n_pictures = 0;
@@ -2258,10 +2168,9 @@ _craft_state_description (FrogrMainView *mainview)
   gchar *upload_size_str = NULL;
   gboolean is_pro = FALSE;
 
-  priv = FROGR_MAIN_VIEW_GET_PRIVATE (mainview);
-  account = frogr_controller_get_active_account (priv->controller);
+  account = frogr_controller_get_active_account (self->controller);
 
-  if (!FROGR_IS_ACCOUNT (account) || !frogr_controller_is_connected (priv->controller))
+  if (!FROGR_IS_ACCOUNT (account) || !frogr_controller_is_connected (self->controller))
     return g_strdup (_("Not connected to Flickr"));
 
   /* Just use the username here ant not the fullname (when available),
@@ -2307,8 +2216,8 @@ _craft_state_description (FrogrMainView *mainview)
     }
 
   /* Check size of the loaded pictures, if any */
-  pictures = frogr_model_get_pictures (priv->model);
-  n_pictures = frogr_model_n_pictures (priv->model);
+  pictures = frogr_model_get_pictures (self->model);
+  n_pictures = frogr_model_n_pictures (self->model);
   if (n_pictures)
     {
       GSList *item = NULL;
@@ -2372,8 +2281,6 @@ static gchar *iconview_actions[] = {
 static void
 _update_sensitiveness (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
   /* gboolean has_accounts = FALSE; */
   gboolean has_pics = FALSE;
   gint n_selected_pics = 0;
@@ -2381,7 +2288,7 @@ _update_sensitiveness (FrogrMainView *self)
   gint i = 0;
 
   /* Set sensitiveness */
-  switch (frogr_controller_get_state (priv->controller))
+  switch (frogr_controller_get_state (self->controller))
     {
     case FROGR_STATE_LOADING_PICTURES:
     case FROGR_STATE_UPLOADING_PICTURES:
@@ -2394,7 +2301,7 @@ _update_sensitiveness (FrogrMainView *self)
 
     case FROGR_STATE_IDLE:
       has_pics = (_n_pictures (self) > 0);
-      n_selected_pics = priv->n_selected_pictures;
+      n_selected_pics = self->n_selected_pictures;
 
       /* Elements from the GMenu - file operations */
       for (i = 0; i < G_N_ELEMENTS (file_actions); i++)
@@ -2429,58 +2336,56 @@ _update_sensitiveness_for_action (FrogrMainView *self, const gchar *name, gboole
 static void
 _update_ui (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
   /* Set sensitiveness */
   _update_sensitiveness (self);
 
   /* Update status bar from model's state description */
-  if (frogr_controller_get_state (priv->controller) == FROGR_STATE_IDLE)
-    frogr_main_view_set_status_text (self, priv->state_description);
+  if (frogr_controller_get_state (self->controller) == FROGR_STATE_IDLE)
+    frogr_main_view_set_status_text (self, self->state_description);
 }
 
 static void
 _frogr_main_view_dispose (GObject *object)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (object);
+  FrogrMainView *self = FROGR_MAIN_VIEW (object);
 
   /* Free memory */
-  if (priv->model)
+  if (self->model)
     {
-      g_object_unref (priv->model);
-      priv->model = NULL;
+      g_object_unref (self->model);
+      self->model = NULL;
     }
 
-  if (priv->sorted_pictures)
+  if (self->sorted_pictures)
     {
-      g_slist_foreach (priv->sorted_pictures, (GFunc)g_object_unref, NULL);
-      g_slist_free (priv->sorted_pictures);
-      priv->sorted_pictures = NULL;
+      g_slist_foreach (self->sorted_pictures, (GFunc)g_object_unref, NULL);
+      g_slist_free (self->sorted_pictures);
+      self->sorted_pictures = NULL;
     }
 
-  if (priv->controller)
+  if (self->controller)
     {
-      g_object_unref (priv->controller);
-      priv->controller = NULL;
+      g_object_unref (self->controller);
+      self->controller = NULL;
     }
 
-  if (priv->config)
+  if (self->config)
     {
-      g_object_unref (priv->config);
-      priv->config = NULL;
+      g_object_unref (self->config);
+      self->config = NULL;
     }
 
-  if (priv->tree_model)
+  if (self->tree_model)
     {
-      gtk_list_store_clear (GTK_LIST_STORE (priv->tree_model));
-      g_object_unref (priv->tree_model);
-      priv->tree_model = NULL;
+      gtk_list_store_clear (GTK_LIST_STORE (self->tree_model));
+      g_object_unref (self->tree_model);
+      self->tree_model = NULL;
     }
 
-  if (priv->builder)
+  if (self->builder)
     {
-      g_object_unref (priv->builder);
-      priv->builder = NULL;
+      g_object_unref (self->builder);
+      self->builder = NULL;
     }
 
   G_OBJECT_CLASS(frogr_main_view_parent_class)->dispose (object);
@@ -2489,13 +2394,13 @@ _frogr_main_view_dispose (GObject *object)
 static void
 _frogr_main_view_finalize (GObject *object)
 {
-  FrogrMainViewPrivate *priv = FROGR_MAIN_VIEW_GET_PRIVATE (object);
+  FrogrMainView *self = FROGR_MAIN_VIEW (object);
 
-  g_free (priv->project_name);
-  g_free (priv->project_dir);
-  g_free (priv->project_filepath);
-  g_free (priv->state_description);
-  gtk_tree_path_free (priv->reference_picture);
+  g_free (self->project_name);
+  g_free (self->project_dir);
+  g_free (self->project_filepath);
+  g_free (self->state_description);
+  gtk_tree_path_free (self->reference_picture);
 
   G_OBJECT_CLASS(frogr_main_view_parent_class)->finalize (object);
 }
@@ -2507,52 +2412,47 @@ frogr_main_view_class_init (FrogrMainViewClass *klass)
 
   obj_class->dispose = _frogr_main_view_dispose;
   obj_class->finalize = _frogr_main_view_finalize;
-
-  g_type_class_add_private (obj_class, sizeof (FrogrMainViewPrivate));
 }
 
 static void
 frogr_main_view_init (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = NULL;
-
   /* Initialize internal state NOT related with the UI */
-  priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-  priv->model = frogr_model_new ();
-  priv->controller = g_object_ref (frogr_controller_get_instance ());
-  priv->config = g_object_ref (frogr_config_get_instance ());
+  self->model = frogr_model_new ();
+  self->controller = g_object_ref (frogr_controller_get_instance ());
+  self->config = g_object_ref (frogr_config_get_instance ());
 
   /* Initialize sorting criteria and reverse */
-  priv->sorted_pictures = NULL;
-  priv->sorting_criteria = frogr_config_get_mainview_sorting_criteria (priv->config);
-  priv->sorting_reversed = frogr_config_get_mainview_sorting_reversed (priv->config);
+  self->sorted_pictures = NULL;
+  self->sorting_criteria = frogr_config_get_mainview_sorting_criteria (self->config);
+  self->sorting_reversed = frogr_config_get_mainview_sorting_reversed (self->config);
 
   /* Read value for 'tooltips enabled' */
-  priv->tooltips_enabled = frogr_config_get_mainview_enable_tooltips (priv->config);
+  self->tooltips_enabled = frogr_config_get_mainview_enable_tooltips (self->config);
 
   /* No selected pictures at the beginning */
-  priv->n_selected_pictures = 0;
+  self->n_selected_pictures = 0;
 
   /* Connect signals */
-  g_signal_connect (G_OBJECT (priv->controller), "state-changed",
+  g_signal_connect (G_OBJECT (self->controller), "state-changed",
                     G_CALLBACK (_controller_state_changed), self);
 
-  g_signal_connect (G_OBJECT (priv->controller), "active-account-changed",
+  g_signal_connect (G_OBJECT (self->controller), "active-account-changed",
                     G_CALLBACK (_controller_active_account_changed), self);
 
-  g_signal_connect (G_OBJECT (priv->controller), "accounts-changed",
+  g_signal_connect (G_OBJECT (self->controller), "accounts-changed",
                     G_CALLBACK (_controller_accounts_changed), self);
 
-  g_signal_connect (G_OBJECT (priv->model), "picture-added",
+  g_signal_connect (G_OBJECT (self->model), "picture-added",
                     G_CALLBACK (_model_picture_added), self);
 
-  g_signal_connect (G_OBJECT (priv->model), "picture-removed",
+  g_signal_connect (G_OBJECT (self->model), "picture-removed",
                     G_CALLBACK (_model_picture_removed), self);
 
-  g_signal_connect (G_OBJECT (priv->model), "model-changed",
+  g_signal_connect (G_OBJECT (self->model), "model-changed",
                     G_CALLBACK (_model_changed), self);
 
-  g_signal_connect (G_OBJECT (priv->model), "model-deserialized",
+  g_signal_connect (G_OBJECT (self->model), "model-deserialized",
                     G_CALLBACK (_model_deserialized), self);
 }
 
@@ -2562,14 +2462,14 @@ frogr_main_view_init (FrogrMainView *self)
 FrogrMainView *
 frogr_main_view_new (GtkApplication *app)
 {
-  FrogrMainView *mainview =
+  FrogrMainView *self =
     FROGR_MAIN_VIEW (g_object_new (FROGR_TYPE_MAIN_VIEW,
                                    "application", app,
                                    NULL));
 
   /* Now initialize all the stuff strictly related to the UI */
-  _initialize_ui (mainview);
-  return mainview;
+  _initialize_ui (self);
+  return self;
 }
 
 void
@@ -2583,20 +2483,17 @@ void
 frogr_main_view_set_status_text (FrogrMainView *self,
                                  const gchar *text)
 {
-  FrogrMainViewPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_MAIN_VIEW (self));
 
   /* Pop old message if present */
-  priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-  gtk_statusbar_pop (GTK_STATUSBAR (priv->status_bar),
-                     priv->sb_context_id);
+  gtk_statusbar_pop (GTK_STATUSBAR (self->status_bar),
+                     self->sb_context_id);
 
   if (text != NULL)
     {
       /* Push new message */
-      gtk_statusbar_push (GTK_STATUSBAR (priv->status_bar),
-                          priv->sb_context_id,
+      gtk_statusbar_push (GTK_STATUSBAR (self->status_bar),
+                          self->sb_context_id,
                           text);
     }
 }
@@ -2604,123 +2501,90 @@ frogr_main_view_set_status_text (FrogrMainView *self,
 void
 frogr_main_view_show_progress (FrogrMainView *self, const gchar *title, const gchar *text)
 {
-  FrogrMainViewPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_MAIN_VIEW (self));
 
-  priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
-  if (priv->progress_is_showing)
+  if (self->progress_is_showing)
     return;
 
-  priv->progress_is_showing = TRUE;
+  self->progress_is_showing = TRUE;
 
-  gtk_window_set_title (GTK_WINDOW (priv->progress_dialog), title);
-  gtk_message_dialog_set_markup (GTK_MESSAGE_DIALOG (priv->progress_dialog),
+  gtk_window_set_title (GTK_WINDOW (self->progress_dialog), title);
+  gtk_message_dialog_set_markup (GTK_MESSAGE_DIALOG (self->progress_dialog),
                                  text ? text : "");
 
   /* Reset values */
-  gtk_progress_bar_set_text (GTK_PROGRESS_BAR (priv->progress_bar), "");
-  gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (priv->progress_bar), 0.0);
-  gtk_progress_bar_set_show_text (GTK_PROGRESS_BAR (priv->progress_bar), FALSE);
+  gtk_progress_bar_set_text (GTK_PROGRESS_BAR (self->progress_bar), "");
+  gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (self->progress_bar), 0.0);
+  gtk_progress_bar_set_show_text (GTK_PROGRESS_BAR (self->progress_bar), FALSE);
 
-  gtk_widget_show_all (GTK_WIDGET (priv->progress_dialog));
-  gtk_window_present (GTK_WINDOW (priv->progress_dialog));
+  gtk_widget_show_all (GTK_WIDGET (self->progress_dialog));
+  gtk_window_present (GTK_WINDOW (self->progress_dialog));
 }
 
 void
 frogr_main_view_set_progress_description (FrogrMainView *self, const gchar *text)
 {
-  FrogrMainViewPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_MAIN_VIEW (self));
-
-  priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-  gtk_message_dialog_set_markup (GTK_MESSAGE_DIALOG (priv->progress_dialog), text);
+  gtk_message_dialog_set_markup (GTK_MESSAGE_DIALOG (self->progress_dialog), text);
 }
 
 void
 frogr_main_view_set_progress_status_text (FrogrMainView *self, const gchar *text)
 {
-  FrogrMainViewPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_MAIN_VIEW (self));
 
-  priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
   /* Set superimposed text, if specified */
   if (text != NULL)
     {
-      gtk_progress_bar_set_show_text (GTK_PROGRESS_BAR (priv->progress_bar), TRUE);
-      gtk_progress_bar_set_text (GTK_PROGRESS_BAR (priv->progress_bar), text);
+      gtk_progress_bar_set_show_text (GTK_PROGRESS_BAR (self->progress_bar), TRUE);
+      gtk_progress_bar_set_text (GTK_PROGRESS_BAR (self->progress_bar), text);
     }
 }
 
 void
 frogr_main_view_set_progress_status_fraction (FrogrMainView *self, double fraction)
 {
-  FrogrMainViewPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_MAIN_VIEW (self));
 
-  priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
   /* Check limits */
   if (fraction < 0.0)
     fraction = 0.0;
   if (fraction > 1.0)
     fraction = 1.0;
 
-  gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (priv->progress_bar), fraction);
+  gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (self->progress_bar), fraction);
 }
 
 void
 frogr_main_view_pulse_progress (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_MAIN_VIEW (self));
 
-  priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-
   /* Show the widget and pulse */
-  gtk_progress_bar_pulse (GTK_PROGRESS_BAR (priv->progress_bar));
+  gtk_progress_bar_pulse (GTK_PROGRESS_BAR (self->progress_bar));
 
   /* Empty text for this */
-  gtk_progress_bar_set_show_text (GTK_PROGRESS_BAR (priv->progress_bar), FALSE);
+  gtk_progress_bar_set_show_text (GTK_PROGRESS_BAR (self->progress_bar), FALSE);
 }
 
 void
 frogr_main_view_hide_progress (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_MAIN_VIEW (self));
-
-  priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-  priv->progress_is_showing = FALSE;
-
-  gtk_widget_hide (GTK_WIDGET (priv->progress_dialog));
+  self->progress_is_showing = FALSE;
+  gtk_widget_hide (GTK_WIDGET (self->progress_dialog));
 }
 
 void
 frogr_main_view_reorder_pictures (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_MAIN_VIEW (self));
-
-  priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-  _reorder_pictures (self, priv->sorting_criteria, priv->sorting_reversed);
+  _reorder_pictures (self, self->sorting_criteria, self->sorting_reversed);
 }
 
 FrogrModel *
 frogr_main_view_get_model (FrogrMainView *self)
 {
-  FrogrMainViewPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_MAIN_VIEW (self), NULL);
-
-  priv = FROGR_MAIN_VIEW_GET_PRIVATE (self);
-  return priv->model;
+  return self->model;
 }
diff --git a/src/frogr-main-view.h b/src/frogr-main-view.h
index b1196f7..614e027 100644
--- a/src/frogr-main-view.h
+++ b/src/frogr-main-view.h
@@ -27,27 +27,9 @@
 
 G_BEGIN_DECLS
 
-#define FROGR_TYPE_MAIN_VIEW           (frogr_main_view_get_type())
-#define FROGR_MAIN_VIEW(obj)           (G_TYPE_CHECK_INSTANCE_CAST(obj, FROGR_TYPE_MAIN_VIEW, FrogrMainView))
-#define FROGR_MAIN_VIEW_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST(klass, FROGR_TYPE_MAIN_VIEW, 
FrogrMainViewClass))
-#define FROGR_IS_MAIN_VIEW(obj)           (G_TYPE_CHECK_INSTANCE_TYPE(obj, FROGR_TYPE_MAIN_VIEW))
-#define FROGR_IS_MAIN_VIEW_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE((klass), FROGR_TYPE_MAIN_VIEW))
-#define FROGR_MAIN_VIEW_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FROGR_TYPE_MAIN_VIEW, 
FrogrMainViewClass))
-
-typedef struct _FrogrMainView        FrogrMainView;
-typedef struct _FrogrMainViewClass   FrogrMainViewClass;
-
-struct _FrogrMainViewClass
-{
-  GtkApplicationWindowClass parent_class;
-};
-
-struct _FrogrMainView
-{
-  GtkApplicationWindow parent;
-};
-
-GType frogr_main_view_get_type (void) G_GNUC_CONST;
+#define FROGR_TYPE_MAIN_VIEW (frogr_main_view_get_type())
+
+G_DECLARE_FINAL_TYPE (FrogrMainView, frogr_main_view, FROGR, MAIN_VIEW, GtkApplicationWindow)
 
 FrogrMainView *frogr_main_view_new (GtkApplication *app);
 
diff --git a/src/frogr-model.c b/src/frogr-model.c
index 891a81a..eefb0e0 100644
--- a/src/frogr-model.c
+++ b/src/frogr-model.c
@@ -25,17 +25,11 @@
 
 #define TAGS_DELIMITER " "
 
-#define FROGR_MODEL_GET_PRIVATE(object)                 \
-  (G_TYPE_INSTANCE_GET_PRIVATE ((object),               \
-                                FROGR_TYPE_MODEL,       \
-                                FrogrModelPrivate))
 
-G_DEFINE_TYPE (FrogrModel, frogr_model, G_TYPE_OBJECT)
-
-/* Private struct */
-typedef struct _FrogrModelPrivate FrogrModelPrivate;
-struct _FrogrModelPrivate
+struct _FrogrModel
 {
+  GObject parent;
+
   GSList *pictures;
 
   /* For sequential access of groups and sets */
@@ -53,6 +47,9 @@ struct _FrogrModelPrivate
   GSList *all_tags;
 };
 
+G_DEFINE_TYPE (FrogrModel, frogr_model, G_TYPE_OBJECT)
+
+
 /* Signals */
 enum {
   PICTURE_ADDED,
@@ -81,80 +78,74 @@ _compare_photosets (FrogrPhotoSet *photoset1, FrogrPhotoSet *photoset2)
 static void
 _remove_remote_photosets (FrogrModel *self)
 {
-  FrogrModelPrivate *priv = NULL;
   FrogrPhotoSet *set = NULL;
   GSList *item = NULL;
   const gchar *id = NULL;
 
   g_return_if_fail(FROGR_IS_MODEL (self));
 
-  priv = FROGR_MODEL_GET_PRIVATE (self);
-  if (!priv->remote_sets)
+  if (!self->remote_sets)
     return;
 
   /* Remove from the hash table first */
-  for (item = priv->remote_sets; item; item = g_slist_next (item))
+  for (item = self->remote_sets; item; item = g_slist_next (item))
     {
       set = FROGR_PHOTOSET (item->data);
       id = frogr_photoset_get_id (set);
       if (id)
-        g_hash_table_remove (priv->sets_table, id);
+        g_hash_table_remove (self->sets_table, id);
 
       /* A remote photo set might be still indexed by its local ID */
       id = frogr_photoset_get_local_id (set);
       if (id)
-        g_hash_table_remove (priv->sets_table, id);
+        g_hash_table_remove (self->sets_table, id);
     }
 
-  g_slist_foreach (priv->remote_sets, (GFunc)g_object_unref, NULL);
-  g_slist_free (priv->remote_sets);
-  priv->remote_sets = NULL;
+  g_slist_foreach (self->remote_sets, (GFunc)g_object_unref, NULL);
+  g_slist_free (self->remote_sets);
+  self->remote_sets = NULL;
 }
 
 static void
 _remove_local_photosets (FrogrModel *self)
 {
-  FrogrModelPrivate *priv = NULL;
   FrogrPhotoSet *set = NULL;
   GSList *item = NULL;
 
   g_return_if_fail(FROGR_IS_MODEL (self));
 
-  priv = FROGR_MODEL_GET_PRIVATE (self);
-  if (!priv->local_sets)
+  if (!self->local_sets)
     return;
 
   /* Remove from the hash table first */
-  for (item = priv->remote_sets; item; item = g_slist_next (item))
+  for (item = self->remote_sets; item; item = g_slist_next (item))
     {
       set = FROGR_PHOTOSET (item->data);
-      g_hash_table_remove (priv->sets_table, frogr_photoset_get_local_id (set));
+      g_hash_table_remove (self->sets_table, frogr_photoset_get_local_id (set));
     }
 
-  g_slist_foreach (priv->local_sets, (GFunc)g_object_unref, NULL);
-  g_slist_free (priv->local_sets);
-  priv->local_sets = NULL;
+  g_slist_foreach (self->local_sets, (GFunc)g_object_unref, NULL);
+  g_slist_free (self->local_sets);
+  self->local_sets = NULL;
 }
 
 static void
 _remove_pictures (FrogrModel *self)
 {
-  FrogrModelPrivate *priv = NULL;
   FrogrPicture *picture = NULL;
 
   g_return_if_fail(FROGR_IS_MODEL (self));
 
-  priv = FROGR_MODEL_GET_PRIVATE (self);
-  while (priv->pictures)
+  while (self->pictures)
     {
-      picture = FROGR_PICTURE (priv->pictures->data);
-      priv->pictures = g_slist_remove (priv->pictures, picture);
+      picture = FROGR_PICTURE (self->pictures->data);
+      self->pictures = g_slist_remove (self->pictures, picture);
       g_signal_emit (self, signals[PICTURE_REMOVED], 0, picture);
       g_object_unref (picture);
     }
 
-  g_slist_free (priv->pictures);
-  priv->pictures = NULL;
+  g_slist_free (self->pictures);
+  self->pictures = NULL;
 
   g_signal_emit (self, signals[MODEL_CHANGED], 0);
 }
@@ -162,87 +153,72 @@ _remove_pictures (FrogrModel *self)
 static void
 _remove_all_photosets (FrogrModel *self)
 {
-  FrogrModelPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_MODEL (self));
 
-  priv = FROGR_MODEL_GET_PRIVATE (self);
-  if (priv->all_sets)
+  if (self->all_sets)
     {
-      g_slist_free (priv->all_sets);
-      priv->all_sets = NULL;
+      g_slist_free (self->all_sets);
+      self->all_sets = NULL;
     }
 
   _remove_remote_photosets (self);
   _remove_local_photosets (self);
 
-  if (priv->sets_table)
-    g_hash_table_remove_all (priv->sets_table);
+  if (self->sets_table)
+    g_hash_table_remove_all (self->sets_table);
 }
 
 static void
 _remove_groups (FrogrModel *self)
 {
-  FrogrModelPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_MODEL (self));
 
-  priv = FROGR_MODEL_GET_PRIVATE (self);
-  if (priv->groups)
+  if (self->groups)
     {
-      g_slist_foreach (priv->groups, (GFunc)g_object_unref, NULL);
-      g_slist_free (priv->groups);
-      priv->groups = NULL;
+      g_slist_foreach (self->groups, (GFunc)g_object_unref, NULL);
+      g_slist_free (self->groups);
+      self->groups = NULL;
     }
 
-  if (priv->groups_table)
-    g_hash_table_remove_all (priv->groups_table);
+  if (self->groups_table)
+    g_hash_table_remove_all (self->groups_table);
 }
 
 static void
 _remove_remote_tags (FrogrModel *self)
 {
-  FrogrModelPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_MODEL (self));
 
-  priv = FROGR_MODEL_GET_PRIVATE (self);
-  if (!priv->remote_tags)
+  if (!self->remote_tags)
     return;
 
-  g_slist_foreach (priv->remote_tags, (GFunc)g_free, NULL);
-  g_slist_free (priv->remote_tags);
-  priv->remote_tags = NULL;
+  g_slist_foreach (self->remote_tags, (GFunc)g_free, NULL);
+  g_slist_free (self->remote_tags);
+  self->remote_tags = NULL;
 }
 
 static void
 _remove_local_tags (FrogrModel *self)
 {
-  FrogrModelPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_MODEL (self));
 
-  priv = FROGR_MODEL_GET_PRIVATE (self);
-  if (!priv->local_tags)
+  if (!self->local_tags)
     return;
 
-  g_slist_foreach (priv->local_tags, (GFunc)g_free, NULL);
-  g_slist_free (priv->local_tags);
-  priv->local_tags = NULL;
+  g_slist_foreach (self->local_tags, (GFunc)g_free, NULL);
+  g_slist_free (self->local_tags);
+  self->local_tags = NULL;
 }
 
 static void
 _remove_all_tags (FrogrModel *self)
 {
-  FrogrModelPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_MODEL (self));
 
-  priv = FROGR_MODEL_GET_PRIVATE (self);
-  if (priv->all_tags)
+  if (self->all_tags)
     {
-      g_slist_free (priv->all_tags);
-      priv->all_tags = NULL;
+      g_slist_free (self->all_tags);
+      self->all_tags = NULL;
     }
 
   _remove_remote_tags (self);
@@ -252,14 +228,9 @@ _remove_all_tags (FrogrModel *self)
 static void
 _set_local_tags (FrogrModel *self, GSList *tags_list)
 {
-  FrogrModelPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_MODEL (self));
-
   _remove_local_tags (self);
-
-  priv = FROGR_MODEL_GET_PRIVATE (self);
-  priv->local_tags = tags_list;
+  self->local_tags = tags_list;
 }
 
 static JsonArray *
@@ -333,23 +304,22 @@ static void
 _frogr_model_dispose (GObject* object)
 {
   FrogrModel *self = FROGR_MODEL (object);
-  FrogrModelPrivate *priv = FROGR_MODEL_GET_PRIVATE (object);
 
   _remove_pictures (self);
   _remove_all_photosets (self);
   _remove_groups (self);
   _remove_all_tags (self);
 
-  if (priv->sets_table)
+  if (self->sets_table)
     {
-      g_hash_table_destroy (priv->sets_table);
-      priv->sets_table = NULL;
+      g_hash_table_destroy (self->sets_table);
+      self->sets_table = NULL;
     }
 
-  if (priv->groups_table)
+  if (self->groups_table)
     {
-      g_hash_table_destroy (priv->groups_table);
-      priv->groups_table = NULL;
+      g_hash_table_destroy (self->groups_table);
+      self->groups_table = NULL;
     }
 
   G_OBJECT_CLASS (frogr_model_parent_class)->dispose (object);
@@ -392,35 +362,30 @@ frogr_model_class_init(FrogrModelClass *klass)
                   0, NULL, NULL,
                   g_cclosure_marshal_VOID__VOID,
                   G_TYPE_NONE, 0);
-
-  g_type_class_add_private (obj_class, sizeof (FrogrModelPrivate));
 }
 
 static void
 frogr_model_init (FrogrModel *self)
 {
-  FrogrModelPrivate *priv =
-    FROGR_MODEL_GET_PRIVATE (self);
-
   /* Init private data */
-  priv->pictures = NULL;
-  priv->remote_sets = NULL;
-  priv->local_sets = NULL;
-  priv->all_sets = NULL;
-  priv->groups = NULL;
+  self->pictures = NULL;
+  self->remote_sets = NULL;
+  self->local_sets = NULL;
+  self->all_sets = NULL;
+  self->groups = NULL;
 
   /* For random access */
-  priv->sets_table = g_hash_table_new_full (g_str_hash, g_str_equal,
+  self->sets_table = g_hash_table_new_full (g_str_hash, g_str_equal,
                                             (GDestroyNotify)g_free,
                                             (GDestroyNotify)g_object_unref);
 
-  priv->groups_table = g_hash_table_new_full (g_str_hash, g_str_equal,
+  self->groups_table = g_hash_table_new_full (g_str_hash, g_str_equal,
                                               (GDestroyNotify)g_free,
                                               (GDestroyNotify)g_object_unref);
 
-  priv->remote_tags = NULL;
-  priv->local_tags = NULL;
-  priv->all_tags = NULL;
+  self->remote_tags = NULL;
+  self->local_tags = NULL;
+  self->all_tags = NULL;
 }
 
 /* Public API */
@@ -436,13 +401,10 @@ void
 frogr_model_add_picture (FrogrModel *self,
                          FrogrPicture *picture)
 {
-  FrogrModelPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_MODEL (self));
   g_return_if_fail(FROGR_IS_PICTURE (picture));
 
-  priv = FROGR_MODEL_GET_PRIVATE (self);
-  priv->pictures = g_slist_append (priv->pictures, g_object_ref (picture));
+  self->pictures = g_slist_append (self->pictures, g_object_ref (picture));
 
   g_signal_emit (self, signals[PICTURE_ADDED], 0, picture);
   g_signal_emit (self, signals[MODEL_CHANGED], 0);
@@ -452,13 +414,9 @@ void
 frogr_model_remove_picture (FrogrModel *self,
                             FrogrPicture *picture)
 {
-  FrogrModelPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_MODEL (self));
 
-  priv = FROGR_MODEL_GET_PRIVATE (self);
-
-  priv->pictures = g_slist_remove (priv->pictures, picture);
+  self->pictures = g_slist_remove (self->pictures, picture);
 
   g_signal_emit (self, signals[PICTURE_REMOVED], 0, picture);
   g_signal_emit (self, signals[MODEL_CHANGED], 0);
@@ -468,23 +426,15 @@ frogr_model_remove_picture (FrogrModel *self,
 guint
 frogr_model_n_pictures (FrogrModel *self)
 {
-  FrogrModelPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_MODEL (self), 0);
-
-  priv = FROGR_MODEL_GET_PRIVATE (self);
-  return g_slist_length (priv->pictures);
+  return g_slist_length (self->pictures);
 }
 
 GSList *
 frogr_model_get_pictures (FrogrModel *self)
 {
-  FrogrModelPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_MODEL (self), NULL);
-
-  priv = FROGR_MODEL_GET_PRIVATE (self);
-  return priv->pictures;
+  return self->pictures;
 }
 
 void
@@ -498,44 +448,37 @@ void
 frogr_model_set_remote_photosets (FrogrModel *self,
                                   GSList *remote_sets)
 {
-  FrogrModelPrivate *priv = NULL;
   FrogrPhotoSet *set = NULL;
   GSList *item = NULL;
 
   g_return_if_fail(FROGR_IS_MODEL (self));
 
-  priv = FROGR_MODEL_GET_PRIVATE (self);
-
   /* Remove all the remote photosets */
   _remove_remote_photosets (self);
 
   /* Set photosets now (and update the hash table) */
-  priv = FROGR_MODEL_GET_PRIVATE (self);
   for (item = remote_sets; item; item = g_slist_next (item))
     {
       set = FROGR_PHOTOSET (item->data);
-      g_hash_table_insert (priv->sets_table,
+      g_hash_table_insert (self->sets_table,
                            g_strdup (frogr_photoset_get_id (set)),
                            g_object_ref (set));
     }
-  priv->remote_sets = remote_sets;
+  self->remote_sets = remote_sets;
 }
 
 void
 frogr_model_add_local_photoset (FrogrModel *self,
                                 FrogrPhotoSet *set)
 {
-  FrogrModelPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_MODEL (self));
   g_return_if_fail(FROGR_IS_PHOTOSET (set));
 
   /* When adding one by one we prepend always to keep the order */
-  priv = FROGR_MODEL_GET_PRIVATE (self);
-  priv->local_sets = g_slist_prepend (priv->local_sets, g_object_ref (set));
+  self->local_sets = g_slist_prepend (self->local_sets, g_object_ref (set));
 
   /* Update the hash table too! */
-  g_hash_table_insert (priv->sets_table,
+  g_hash_table_insert (self->sets_table,
                        g_strdup (frogr_photoset_get_local_id (set)),
                        g_object_ref (set));
 
@@ -545,28 +488,25 @@ frogr_model_add_local_photoset (FrogrModel *self,
 GSList *
 frogr_model_get_photosets (FrogrModel *self)
 {
-  FrogrModelPrivate *priv = NULL;
   GSList *list = NULL;
   GSList *current = NULL;
 
   g_return_val_if_fail(FROGR_IS_MODEL (self), 0);
 
-  priv = FROGR_MODEL_GET_PRIVATE (self);
-
   /* Copy the list of remote sets and add those locally added */
-  list = g_slist_copy (priv->remote_sets);
-  for (current = priv->local_sets; current; current = g_slist_next (current))
+  list = g_slist_copy (self->remote_sets);
+  for (current = self->local_sets; current; current = g_slist_next (current))
     {
       if (!g_slist_find_custom (list, current->data, (GCompareFunc)_compare_photosets))
         list = g_slist_prepend (list, current->data);
     }
 
   /* Update internal pointers to the result list */
-  if (priv->all_sets)
-    g_slist_free (priv->all_sets);
-  priv->all_sets = list;
+  if (self->all_sets)
+    g_slist_free (self->all_sets);
+  self->all_sets = list;
 
-  return priv->all_sets;
+  return self->all_sets;
 }
 
 void
@@ -608,59 +548,40 @@ frogr_model_set_photosets (FrogrModel *self,
 guint
 frogr_model_n_photosets (FrogrModel *self)
 {
-  FrogrModelPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_MODEL (self), 0);
-
-  priv = FROGR_MODEL_GET_PRIVATE (self);
-  return g_slist_length (priv->remote_sets) + g_slist_length (priv->local_sets);
+  return g_slist_length (self->remote_sets) + g_slist_length (self->local_sets);
 }
 
 FrogrPhotoSet *
 frogr_model_get_photoset_by_id (FrogrModel *self, const gchar *id)
 {
-  FrogrModelPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_MODEL (self), NULL);
-
-  priv = FROGR_MODEL_GET_PRIVATE (self);
-  return g_hash_table_lookup (priv->sets_table, id);
+  return g_hash_table_lookup (self->sets_table, id);
 }
 
 guint
 frogr_model_n_groups (FrogrModel *self)
 {
-  FrogrModelPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_MODEL (self), 0);
-
-  priv = FROGR_MODEL_GET_PRIVATE (self);
-  return g_slist_length (priv->groups);
+  return g_slist_length (self->groups);
 }
 
 GSList *
 frogr_model_get_groups (FrogrModel *self)
 {
-  FrogrModelPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_MODEL (self), NULL);
-
-  priv = FROGR_MODEL_GET_PRIVATE (self);
-  return priv->groups;
+  return self->groups;
 }
 
 void
 frogr_model_set_groups (FrogrModel *self,
                         GSList *groups)
 {
-  FrogrModelPrivate *priv = NULL;
   FrogrGroup *group = NULL;
   GSList *item = NULL;
 
   g_return_if_fail(FROGR_IS_MODEL (self));
 
-  priv = FROGR_MODEL_GET_PRIVATE (self);
-
   /* Remove all groups */
   _remove_groups (self);
 
@@ -668,52 +589,39 @@ frogr_model_set_groups (FrogrModel *self,
   for (item = groups; item; item = g_slist_next (item))
     {
       group = FROGR_GROUP (item->data);
-      g_hash_table_insert (priv->groups_table,
+      g_hash_table_insert (self->groups_table,
                            g_strdup (frogr_group_get_id (group)),
                            g_object_ref (group));
     }
 
   /* Set groups now */
-  priv->groups = groups;
+  self->groups = groups;
 }
 
 FrogrGroup *
 frogr_model_get_group_by_id (FrogrModel *self, const gchar *id)
 {
-  FrogrModelPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_MODEL (self), NULL);
-
-  priv = FROGR_MODEL_GET_PRIVATE (self);
-  return g_hash_table_lookup (priv->groups_table, id);
+  return g_hash_table_lookup (self->groups_table, id);
 }
 
 void
 frogr_model_set_remote_tags (FrogrModel *self, GSList *tags_list)
 {
-  FrogrModelPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_MODEL (self));
-
   _remove_remote_tags (self);
-
-  priv = FROGR_MODEL_GET_PRIVATE (self);
-  priv->remote_tags = tags_list;
+  self->remote_tags = tags_list;
 }
 
 void
 frogr_model_remove_remote_tags (FrogrModel *self)
 {
-  FrogrModelPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_MODEL (self));
 
-  priv = FROGR_MODEL_GET_PRIVATE (self);
+  g_slist_foreach (self->remote_tags, (GFunc)g_free, NULL);
+  g_slist_free (self->remote_tags);
 
-  g_slist_foreach (priv->remote_tags, (GFunc)g_free, NULL);
-  g_slist_free (priv->remote_tags);
-
-  priv->remote_tags = NULL;
+  self->remote_tags = NULL;
 }
 
 void
@@ -731,21 +639,19 @@ frogr_model_add_local_tags_from_string (FrogrModel *self,
   stripped_tags = g_strstrip (g_strdup (tags_string));
   if (!g_str_equal (stripped_tags, ""))
     {
-      FrogrModelPrivate *priv = NULL;
       gchar **tags_array = NULL;
       gchar *tag;
       gint i;
 
       /* Now iterate over every token, adding it to the list */
-      priv = FROGR_MODEL_GET_PRIVATE (self);
       tags_array = g_strsplit (stripped_tags, TAGS_DELIMITER, -1);
       for (i = 0; tags_array[i]; i++)
         {
           /* add stripped tag if not already set*/
           tag = g_strstrip(g_strdup (tags_array[i]));
-          if (!g_str_equal (tag, "") && !g_slist_find_custom (priv->local_tags, tag, 
(GCompareFunc)g_strcmp0))
+          if (!g_str_equal (tag, "") && !g_slist_find_custom (self->local_tags, tag, 
(GCompareFunc)g_strcmp0))
             {
-              priv->local_tags = g_slist_prepend (priv->local_tags, g_strdup (tag));
+              self->local_tags = g_slist_prepend (self->local_tags, g_strdup (tag));
               added_new_tags = TRUE;
             }
 
@@ -753,7 +659,7 @@ frogr_model_add_local_tags_from_string (FrogrModel *self,
         }
       g_strfreev (tags_array);
 
-      priv->local_tags = g_slist_sort (priv->local_tags, (GCompareFunc)g_strcmp0);
+      self->local_tags = g_slist_sort (self->local_tags, (GCompareFunc)g_strcmp0);
     }
   g_free (stripped_tags);
 
@@ -764,17 +670,14 @@ frogr_model_add_local_tags_from_string (FrogrModel *self,
 GSList *
 frogr_model_get_tags (FrogrModel *self)
 {
-  FrogrModelPrivate *priv = NULL;
   GSList *list = NULL;
   GSList *current = NULL;
 
   g_return_val_if_fail(FROGR_IS_MODEL (self), 0);
 
-  priv = FROGR_MODEL_GET_PRIVATE (self);
-
   /* Copy the list of remote tags and add those locally added */
-  list = g_slist_copy (priv->remote_tags);
-  for (current = priv->local_tags; current; current = g_slist_next (current))
+  list = g_slist_copy (self->remote_tags);
+  for (current = self->local_tags; current; current = g_slist_next (current))
     {
       if (!g_slist_find_custom (list, current->data, (GCompareFunc)g_strcmp0))
         list = g_slist_prepend (list, current->data);
@@ -782,11 +685,11 @@ frogr_model_get_tags (FrogrModel *self)
   list = g_slist_sort (list, (GCompareFunc)g_strcmp0);
 
   /* Update internal pointers to the result list */
-  if (priv->all_tags)
-    g_slist_free (priv->all_tags);
-  priv->all_tags = list;
+  if (self->all_tags)
+    g_slist_free (self->all_tags);
+  self->all_tags = list;
 
-  return priv->all_tags;
+  return self->all_tags;
 }
 
 guint
@@ -800,7 +703,7 @@ guint
 frogr_model_n_local_tags (FrogrModel *self)
 {
   g_return_val_if_fail(FROGR_IS_MODEL (self), 0);
-  return g_slist_length (FROGR_MODEL_GET_PRIVATE (self)->local_tags);
+  return g_slist_length (self->local_tags);
 }
 
 JsonObject *
@@ -827,7 +730,7 @@ frogr_model_serialize (FrogrModel *self)
   json_object_set_array_member (root_object, "groups", json_array);
 
   /* Only serialize the local tags, not to bloat the project file too much */
-  json_array = _serialize_list_to_json_array (FROGR_MODEL_GET_PRIVATE (self)->local_tags,
+  json_array = _serialize_list_to_json_array (self->local_tags,
                                               G_TYPE_STRING);
   json_object_set_array_member (root_object, "tags", json_array);
 
diff --git a/src/frogr-model.h b/src/frogr-model.h
index 9e32c58..430cd47 100644
--- a/src/frogr-model.h
+++ b/src/frogr-model.h
@@ -31,28 +31,9 @@
 
 G_BEGIN_DECLS
 
-#define FROGR_TYPE_MODEL           (frogr_model_get_type())
-#define FROGR_MODEL(obj)           (G_TYPE_CHECK_INSTANCE_CAST(obj, FROGR_TYPE_MODEL, FrogrModel))
-#define FROGR_MODEL_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST(klass, FROGR_TYPE_MODEL, FrogrModelClass))
-#define FROGR_IS_MODEL(obj)           (G_TYPE_CHECK_INSTANCE_TYPE(obj, FROGR_TYPE_MODEL))
-#define FROGR_IS_MODEL_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE((klass), FROGR_TYPE_MODEL))
-#define FROGR_MODEL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FROGR_TYPE_MODEL, FrogrModelClass))
+#define FROGR_TYPE_MODEL (frogr_model_get_type())
 
-typedef struct _FrogrModel FrogrModel;
-typedef struct _FrogrModelClass FrogrModelClass;
-
-struct _FrogrModel
-{
-  GObject parent_instance;
-};
-
-struct _FrogrModelClass
-{
-  GObjectClass parent_class;
-};
-
-
-GType frogr_model_get_type(void) G_GNUC_CONST;
+G_DECLARE_FINAL_TYPE (FrogrModel, frogr_model, FROGR, MODEL, GObject)
 
 FrogrModel *frogr_model_new (void);
 
diff --git a/src/frogr-photoset.c b/src/frogr-photoset.c
index a184c56..cb43ac2 100644
--- a/src/frogr-photoset.c
+++ b/src/frogr-photoset.c
@@ -25,17 +25,10 @@
 #include <sys/types.h>
 #include <unistd.h>
 
-#define FROGR_PHOTOSET_GET_PRIVATE(object)              \
-  (G_TYPE_INSTANCE_GET_PRIVATE ((object),               \
-                                FROGR_TYPE_PHOTOSET,    \
-                                FrogrPhotoSetPrivate))
-
-G_DEFINE_TYPE (FrogrPhotoSet, frogr_photoset, G_TYPE_OBJECT)
-
-/* Private struct */
-typedef struct _FrogrPhotoSetPrivate FrogrPhotoSetPrivate;
-struct _FrogrPhotoSetPrivate
+struct _FrogrPhotoSet
 {
+  GObject parent;
+
   gchar *title;
   gchar *description;
   gchar *id;
@@ -44,6 +37,9 @@ struct _FrogrPhotoSetPrivate
   gint n_photos;
 };
 
+G_DEFINE_TYPE (FrogrPhotoSet, frogr_photoset, G_TYPE_OBJECT)
+
+
 /* Properties */
 enum  {
   PROP_0,
@@ -186,16 +182,16 @@ _frogr_photoset_get_property (GObject *object,
 }
 
 static void
-_frogr_photoset_finalize (GObject* object)
+_frogr_photoset_finalize (GObject *object)
 {
-  FrogrPhotoSetPrivate *priv = FROGR_PHOTOSET_GET_PRIVATE (object);
+  FrogrPhotoSet *self = FROGR_PHOTOSET (object);
 
   /* free strings */
-  g_free (priv->title);
-  g_free (priv->description);
-  g_free (priv->id);
-  g_free (priv->local_id);
-  g_free (priv->primary_photo_id);
+  g_free (self->title);
+  g_free (self->description);
+  g_free (self->id);
+  g_free (self->local_id);
+  g_free (self->primary_photo_id);
 
   /* call super class */
   G_OBJECT_CLASS (frogr_photoset_parent_class)->finalize(object);
@@ -259,22 +255,18 @@ frogr_photoset_class_init(FrogrPhotoSetClass *klass)
                                                      G_MAXINT,
                                                      0,
                                                      G_PARAM_READWRITE));
-
-  g_type_class_add_private (obj_class, sizeof (FrogrPhotoSetPrivate));
 }
 
 static void
 frogr_photoset_init (FrogrPhotoSet *self)
 {
-  FrogrPhotoSetPrivate *priv = FROGR_PHOTOSET_GET_PRIVATE (self);
-
   /* Default values */
-  priv->title = NULL;
-  priv->description = NULL;
-  priv->id = NULL;
-  priv->local_id = NULL;
-  priv->primary_photo_id = NULL;
-  priv->n_photos = 0;
+  self->title = NULL;
+  self->description = NULL;
+  self->id = NULL;
+  self->local_id = NULL;
+  self->primary_photo_id = NULL;
+  self->n_photos = 0;
 }
 
 
@@ -320,154 +312,103 @@ frogr_photoset_new_local (const gchar *title,
 const gchar *
 frogr_photoset_get_title (FrogrPhotoSet *self)
 {
-  FrogrPhotoSetPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PHOTOSET(self), NULL);
-
-  priv = FROGR_PHOTOSET_GET_PRIVATE (self);
-  return (const gchar *)priv->title;
+  return (const gchar *)self->title;
 }
 
 void
 frogr_photoset_set_title (FrogrPhotoSet *self,
                           const gchar *title)
 {
-  FrogrPhotoSetPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PHOTOSET(self));
   g_return_if_fail(title != NULL);
 
-  priv = FROGR_PHOTOSET_GET_PRIVATE (self);
-  g_free (priv->title);
-  priv->title = g_strdup (title);
+  g_free (self->title);
+  self->title = g_strdup (title);
 }
 
 const gchar *
 frogr_photoset_get_description (FrogrPhotoSet *self)
 {
-  FrogrPhotoSetPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PHOTOSET(self), NULL);
-
-  priv = FROGR_PHOTOSET_GET_PRIVATE (self);
-  return (const gchar *)priv->description;
+  return (const gchar *)self->description;
 }
 
 void
 frogr_photoset_set_description (FrogrPhotoSet *self,
                                 const gchar *description)
 {
-  FrogrPhotoSetPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PHOTOSET(self));
-
-  priv = FROGR_PHOTOSET_GET_PRIVATE (self);
-  g_free (priv->description);
-  priv->description = g_strdup (description);
+  g_free (self->description);
+  self->description = g_strdup (description);
 }
 
 const gchar *
 frogr_photoset_get_id (FrogrPhotoSet *self)
 {
-  FrogrPhotoSetPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PHOTOSET(self), NULL);
-
-  priv = FROGR_PHOTOSET_GET_PRIVATE (self);
-  return (const gchar *)priv->id;
+  return (const gchar *)self->id;
 }
 
 void
 frogr_photoset_set_id (FrogrPhotoSet *self,
                        const gchar *id)
 {
-  FrogrPhotoSetPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PHOTOSET(self));
-
-  priv = FROGR_PHOTOSET_GET_PRIVATE (self);
-  g_free (priv->id);
-  priv->id = g_strdup (id);
+  g_free (self->id);
+  self->id = g_strdup (id);
 }
 
 const gchar *
 frogr_photoset_get_local_id (FrogrPhotoSet *self)
 {
-  FrogrPhotoSetPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PHOTOSET(self), NULL);
-
-  priv = FROGR_PHOTOSET_GET_PRIVATE (self);
-  return (const gchar *)priv->local_id;
+  return (const gchar *)self->local_id;
 }
 
 void
 frogr_photoset_set_local_id (FrogrPhotoSet *self,
                              const gchar *id)
 {
-  FrogrPhotoSetPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PHOTOSET(self));
-
-  priv = FROGR_PHOTOSET_GET_PRIVATE (self);
-  g_free (priv->local_id);
-  priv->local_id = g_strdup (id);
+  g_free (self->local_id);
+  self->local_id = g_strdup (id);
 }
 
 const gchar *
 frogr_photoset_get_primary_photo_id (FrogrPhotoSet *self)
 {
-  FrogrPhotoSetPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PHOTOSET(self), NULL);
-
-  priv = FROGR_PHOTOSET_GET_PRIVATE (self);
-  return (const gchar *)priv->primary_photo_id;
+  return (const gchar *)self->primary_photo_id;
 }
 
 void
 frogr_photoset_set_primary_photo_id (FrogrPhotoSet *self,
                                      const gchar *primary_photo_id)
 {
-  FrogrPhotoSetPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PHOTOSET(self));
-
-  priv = FROGR_PHOTOSET_GET_PRIVATE (self);
-  g_free (priv->primary_photo_id);
-  priv->primary_photo_id = g_strdup (primary_photo_id);
+  g_free (self->primary_photo_id);
+  self->primary_photo_id = g_strdup (primary_photo_id);
 }
 
 gint
 frogr_photoset_get_n_photos (FrogrPhotoSet *self)
 {
-  FrogrPhotoSetPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PHOTOSET(self), FALSE);
-
-  priv = FROGR_PHOTOSET_GET_PRIVATE (self);
-  return priv->n_photos;
+  return self->n_photos;
 }
 
 void
 frogr_photoset_set_n_photos (FrogrPhotoSet *self,
                              gint n)
 {
-  FrogrPhotoSetPrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PHOTOSET(self));
-
-  priv = FROGR_PHOTOSET_GET_PRIVATE (self);
-  priv->n_photos = n;
+  self->n_photos = n;
 }
 
 gboolean
 frogr_photoset_is_local (FrogrPhotoSet *self)
 {
-  FrogrPhotoSetPrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PHOTOSET(self), FALSE);
-
-  priv = FROGR_PHOTOSET_GET_PRIVATE (self);
-  return priv->id == NULL && priv->local_id != NULL;
+  return self->id == NULL && self->local_id != NULL;
 }
diff --git a/src/frogr-photoset.h b/src/frogr-photoset.h
index 41b0dcf..a620476 100644
--- a/src/frogr-photoset.h
+++ b/src/frogr-photoset.h
@@ -26,28 +26,9 @@
 
 G_BEGIN_DECLS
 
-#define FROGR_TYPE_PHOTOSET           (frogr_photoset_get_type())
-#define FROGR_PHOTOSET(obj)           (G_TYPE_CHECK_INSTANCE_CAST(obj, FROGR_TYPE_PHOTOSET, FrogrPhotoSet))
-#define FROGR_PHOTOSET_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST(klass, FROGR_TYPE_PHOTOSET, 
FrogrPhotoSetClass))
-#define FROGR_IS_PHOTOSET(obj)           (G_TYPE_CHECK_INSTANCE_TYPE(obj, FROGR_TYPE_PHOTOSET))
-#define FROGR_IS_PHOTOSET_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE((klass), FROGR_TYPE_PHOTOSET))
-#define FROGR_PHOTOSET_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FROGR_TYPE_PHOTOSET, 
FrogrPhotoSetClass))
+#define FROGR_TYPE_PHOTOSET (frogr_photoset_get_type())
 
-typedef struct _FrogrPhotoSet FrogrPhotoSet;
-typedef struct _FrogrPhotoSetClass FrogrPhotoSetClass;
-
-struct _FrogrPhotoSet
-{
-  GObject parent_instance;
-};
-
-struct _FrogrPhotoSetClass
-{
-  GObjectClass parent_class;
-};
-
-
-GType frogr_photoset_get_type(void) G_GNUC_CONST;
+G_DECLARE_FINAL_TYPE (FrogrPhotoSet, frogr_photoset, FROGR, PHOTOSET, GObject)
 
 /* Constructors */
 
diff --git a/src/frogr-picture.c b/src/frogr-picture.c
index 1956ace..75421c3 100644
--- a/src/frogr-picture.c
+++ b/src/frogr-picture.c
@@ -27,21 +27,13 @@
 
 #define TAGS_DELIMITER " "
 
-#define FROGR_PICTURE_GET_PRIVATE(object)               \
-  (G_TYPE_INSTANCE_GET_PRIVATE ((object),               \
-                                FROGR_TYPE_PICTURE,     \
-                                FrogrPicturePrivate))
-
 static void json_serializable_init (JsonSerializableIface *iface);
 
-G_DEFINE_TYPE_EXTENDED (FrogrPicture, frogr_picture, G_TYPE_OBJECT, 0,
-                        G_IMPLEMENT_INTERFACE (JSON_TYPE_SERIALIZABLE,
-                                               json_serializable_init))
 
-/* Private struct */
-typedef struct _FrogrPicturePrivate FrogrPicturePrivate;
-struct _FrogrPicturePrivate
+struct _FrogrPicture
 {
+  GObject parent;
+
   gchar *id;
   gchar *fileuri;
   gchar *title;
@@ -72,6 +64,11 @@ struct _FrogrPicturePrivate
   GdkPixbuf *pixbuf;
 };
 
+G_DEFINE_TYPE_EXTENDED (FrogrPicture, frogr_picture, G_TYPE_OBJECT, 0,
+                        G_IMPLEMENT_INTERFACE (JSON_TYPE_SERIALIZABLE,
+                                               json_serializable_init))
+
+
 /* Properties */
 enum  {
   PROP_0,
@@ -124,11 +121,10 @@ static gboolean _deserialize_property (JsonSerializable *serializable,
 static gboolean
 _tag_is_set (FrogrPicture *self, const gchar *tag)
 {
-  FrogrPicturePrivate *priv = FROGR_PICTURE_GET_PRIVATE (self);
   GSList *item;
   gboolean tag_found = FALSE;
 
-  for (item = priv->tags_list; item; item = g_slist_next (item))
+  for (item = self->tags_list; item; item = g_slist_next (item))
     {
       if (g_str_equal ((gchar *)item->data, tag))
         {
@@ -144,8 +140,6 @@ static void
 _add_tags_to_tags_list (FrogrPicture *self,
                         const gchar *tags_string)
 {
-  FrogrPicturePrivate *priv = FROGR_PICTURE_GET_PRIVATE (self);
-
   /* Check if valid data is passed to the function */
   if (tags_string != NULL)
     {
@@ -163,7 +157,7 @@ _add_tags_to_tags_list (FrogrPicture *self,
               /* add stripped tag if not already set*/
               tag = g_strstrip(g_strdup (tags_array[i]));
               if (!g_str_equal (tag, "") && !_tag_is_set (self, tag))
-                priv->tags_list = g_slist_append (priv->tags_list, tag);
+                self->tags_list = g_slist_append (self->tags_list, tag);
             }
 
           /* Free */
@@ -179,24 +173,22 @@ _add_tags_to_tags_list (FrogrPicture *self,
 static void
 _update_tags_string (FrogrPicture *self)
 {
-  FrogrPicturePrivate *priv = FROGR_PICTURE_GET_PRIVATE (self);
-
   /* Reset previous tags string */
-  g_free (priv->tags_string);
-  priv->tags_string = NULL;
+  g_free (self->tags_string);
+  self->tags_string = NULL;
 
   /* Set the tags_string value, if needed */
-  if (priv->tags_list != NULL)
+  if (self->tags_list != NULL)
     {
       GSList *item = NULL;
       gchar *new_str = NULL;
       gchar *tmp_str = NULL;
 
       /* Init new_string to first item */
-      new_str = g_strdup ((gchar *)priv->tags_list->data);
+      new_str = g_strdup ((gchar *)self->tags_list->data);
 
       /* Continue with the remaining tags */
-      for (item = g_slist_next (priv->tags_list);
+      for (item = g_slist_next (self->tags_list);
            item != NULL;
            item = g_slist_next (item))
         {
@@ -208,7 +200,7 @@ _update_tags_string (FrogrPicture *self)
         }
 
       /* Store final result */
-      priv->tags_string = new_str;
+      self->tags_string = new_str;
     }
 }
 
@@ -342,16 +334,16 @@ _serialize_property (JsonSerializable *serializable,
                      const GValue *value,
                      GParamSpec *pspec)
 {
-  FrogrPicturePrivate *priv = NULL;
+  FrogrPicture *self = NULL;
   JsonNode *json_node = NULL;
 
   g_return_val_if_fail (FROGR_IS_PICTURE (serializable), FALSE);
 
-  priv = FROGR_PICTURE_GET_PRIVATE (serializable);
+  self = FROGR_PICTURE (serializable);
   if (g_str_equal (name, "photosets"))
-    json_node = _serialize_list (priv->photosets, FROGR_TYPE_PHOTOSET);
+    json_node = _serialize_list (self->photosets, FROGR_TYPE_PHOTOSET);
   else if (g_str_equal (name, "groups"))
-    json_node = _serialize_list (priv->groups, FROGR_TYPE_GROUP);
+    json_node = _serialize_list (self->groups, FROGR_TYPE_GROUP);
   else
     {
       /* Default serialization here */
@@ -411,7 +403,6 @@ _frogr_picture_set_property (GObject *object,
                              GParamSpec *pspec)
 {
   FrogrPicture *self = FROGR_PICTURE (object);
-  FrogrPicturePrivate *priv = FROGR_PICTURE_GET_PRIVATE (self);
 
   switch (prop_id)
     {
@@ -419,7 +410,7 @@ _frogr_picture_set_property (GObject *object,
       frogr_picture_set_id (self, g_value_get_string (value));
       break;
     case PROP_FILEURI:
-      priv->fileuri = g_value_dup_string (value);
+      self->fileuri = g_value_dup_string (value);
       break;
     case PROP_TITLE:
       frogr_picture_set_title (self, g_value_get_string (value));
@@ -461,7 +452,7 @@ _frogr_picture_set_property (GObject *object,
       frogr_picture_set_replace_date_posted (self, g_value_get_boolean (value));
       break;
     case PROP_IS_VIDEO:
-      priv->is_video = g_value_get_boolean (value);
+      self->is_video = g_value_get_boolean (value);
       break;
     case PROP_FILESIZE:
       frogr_picture_set_filesize (self, g_value_get_uint (value));
@@ -487,69 +478,69 @@ _frogr_picture_get_property (GObject *object,
                              GValue *value,
                              GParamSpec *pspec)
 {
-  FrogrPicturePrivate *priv = FROGR_PICTURE_GET_PRIVATE (object);
+  FrogrPicture *self = FROGR_PICTURE (object);
 
   switch (prop_id)
     {
     case PROP_ID:
-      g_value_set_string (value, priv->id);
+      g_value_set_string (value, self->id);
       break;
     case PROP_FILEURI:
-      g_value_set_string (value, priv->fileuri);
+      g_value_set_string (value, self->fileuri);
       break;
     case PROP_TITLE:
-      g_value_set_string (value, priv->title);
+      g_value_set_string (value, self->title);
       break;
     case PROP_DESCRIPTION:
-      g_value_set_string (value, priv->description);
+      g_value_set_string (value, self->description);
       break;
     case PROP_TAGS_STRING:
-      g_value_set_string (value, priv->tags_string);
+      g_value_set_string (value, self->tags_string);
       break;
     case PROP_IS_PUBLIC:
-      g_value_set_boolean (value, priv->is_public);
+      g_value_set_boolean (value, self->is_public);
       break;
     case PROP_IS_FAMILY:
-      g_value_set_boolean (value, priv->is_family);
+      g_value_set_boolean (value, self->is_family);
       break;
     case PROP_IS_FRIEND:
-      g_value_set_boolean (value, priv->is_friend);
+      g_value_set_boolean (value, self->is_friend);
       break;
     case PROP_SAFETY_LEVEL:
-      g_value_set_int (value, priv->safety_level);
+      g_value_set_int (value, self->safety_level);
       break;
     case PROP_CONTENT_TYPE:
-      g_value_set_int (value, priv->content_type);
+      g_value_set_int (value, self->content_type);
       break;
     case PROP_LICENSE:
-      g_value_set_int (value, priv->license);
+      g_value_set_int (value, self->license);
       break;
     case PROP_LOCATION:
-      g_value_set_object (value, priv->location);
+      g_value_set_object (value, self->location);
       break;
     case PROP_SHOW_IN_SEARCH:
-      g_value_set_boolean (value, priv->show_in_search);
+      g_value_set_boolean (value, self->show_in_search);
       break;
     case PROP_SEND_LOCATION:
-      g_value_set_boolean (value, priv->send_location);
+      g_value_set_boolean (value, self->send_location);
       break;
     case PROP_REPLACE_DATE_POSTED:
-      g_value_set_boolean (value, priv->replace_date_posted);
+      g_value_set_boolean (value, self->replace_date_posted);
       break;
     case PROP_IS_VIDEO:
-      g_value_set_boolean (value, priv->is_video);
+      g_value_set_boolean (value, self->is_video);
       break;
     case PROP_FILESIZE:
-      g_value_set_uint (value, priv->filesize);
+      g_value_set_uint (value, self->filesize);
       break;
     case PROP_DATETIME:
-      g_value_set_string (value, priv->datetime);
+      g_value_set_string (value, self->datetime);
       break;
     case PROP_PHOTOSETS:
-      g_value_set_pointer (value, priv->photosets);
+      g_value_set_pointer (value, self->photosets);
       break;
     case PROP_GROUPS:
-      g_value_set_pointer (value, priv->groups);
+      g_value_set_pointer (value, self->groups);
       break;
     default:
       G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -560,23 +551,23 @@ _frogr_picture_get_property (GObject *object,
 static void
 _frogr_picture_dispose (GObject* object)
 {
-  FrogrPicturePrivate *priv = FROGR_PICTURE_GET_PRIVATE (object);
+  FrogrPicture *self = FROGR_PICTURE (object);
 
-  g_clear_object (&priv->pixbuf);
-  g_clear_object (&priv->location);
+  g_clear_object (&self->pixbuf);
+  g_clear_object (&self->location);
 
-  if (priv->photosets)
+  if (self->photosets)
     {
-      g_slist_foreach (priv->photosets, (GFunc) g_object_unref, NULL);
-      g_slist_free (priv->photosets);
-      priv->photosets = NULL;
+      g_slist_foreach (self->photosets, (GFunc) g_object_unref, NULL);
+      g_slist_free (self->photosets);
+      self->photosets = NULL;
     }
 
-  if (priv->groups)
+  if (self->groups)
     {
-      g_slist_foreach (priv->groups, (GFunc) g_object_unref, NULL);
-      g_slist_free (priv->groups);
-      priv->groups = NULL;
+      g_slist_foreach (self->groups, (GFunc) g_object_unref, NULL);
+      g_slist_free (self->groups);
+      self->groups = NULL;
     }
 
   /* call super class */
@@ -586,19 +577,19 @@ _frogr_picture_dispose (GObject* object)
 static void
 _frogr_picture_finalize (GObject* object)
 {
-  FrogrPicturePrivate *priv = FROGR_PICTURE_GET_PRIVATE (object);
+  FrogrPicture *self = FROGR_PICTURE (object);
 
   /* free strings */
-  g_free (priv->id);
-  g_free (priv->fileuri);
-  g_free (priv->title);
-  g_free (priv->description);
-  g_free (priv->tags_string);
-  g_free (priv->datetime);
+  g_free (self->id);
+  g_free (self->fileuri);
+  g_free (self->title);
+  g_free (self->description);
+  g_free (self->tags_string);
+  g_free (self->datetime);
 
   /* free GSList of tags */
-  g_slist_foreach (priv->tags_list, (GFunc) g_free, NULL);
-  g_slist_free (priv->tags_list);
+  g_slist_foreach (self->tags_list, (GFunc) g_free, NULL);
+  g_slist_free (self->tags_list);
 
   /* call super class */
   G_OBJECT_CLASS (frogr_picture_parent_class)->finalize(object);
@@ -776,45 +767,41 @@ frogr_picture_class_init(FrogrPictureClass *klass)
                                                          "groups",
                                                          "List of groups the picture is in",
                                                          G_PARAM_READWRITE));
-
-  g_type_class_add_private (obj_class, sizeof (FrogrPicturePrivate));
 }
 
 static void
 frogr_picture_init (FrogrPicture *self)
 {
-  FrogrPicturePrivate *priv = FROGR_PICTURE_GET_PRIVATE (self);
-
   /* Default values */
-  priv->id = NULL;
-  priv->fileuri = NULL;
-  priv->title = NULL;
-  priv->description = NULL;
-  priv->tags_string = NULL;
-  priv->tags_list = NULL;
+  self->id = NULL;
+  self->fileuri = NULL;
+  self->title = NULL;
+  self->description = NULL;
+  self->tags_string = NULL;
+  self->tags_list = NULL;
 
-  priv->is_public = FALSE;
-  priv->is_friend = FALSE;
-  priv->is_family = FALSE;
+  self->is_public = FALSE;
+  self->is_friend = FALSE;
+  self->is_family = FALSE;
 
-  priv->safety_level = FSP_SAFETY_LEVEL_SAFE;
-  priv->content_type = FSP_CONTENT_TYPE_PHOTO;
-  priv->license = FSP_LICENSE_NONE;
-  priv->location = NULL;
+  self->safety_level = FSP_SAFETY_LEVEL_SAFE;
+  self->content_type = FSP_CONTENT_TYPE_PHOTO;
+  self->license = FSP_LICENSE_NONE;
+  self->location = NULL;
 
-  priv->show_in_search = TRUE;
-  priv->send_location = FALSE;
-  priv->replace_date_posted = FALSE;
+  self->show_in_search = TRUE;
+  self->send_location = FALSE;
+  self->replace_date_posted = FALSE;
 
-  priv->is_video = FALSE;
+  self->is_video = FALSE;
 
-  priv->filesize = 0;
-  priv->datetime = NULL;
+  self->filesize = 0;
+  self->datetime = NULL;
 
-  priv->photosets = NULL;
-  priv->groups = NULL;
+  self->photosets = NULL;
+  self->groups = NULL;
 
-  priv->pixbuf = NULL;
+  self->pixbuf = NULL;
 }
 
 
@@ -847,122 +834,83 @@ frogr_picture_new (const gchar *fileuri,
 const gchar *
 frogr_picture_get_id (FrogrPicture *self)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PICTURE(self), NULL);
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  return (const gchar *)priv->id;
+  return (const gchar *)self->id;
 }
 
 void
 frogr_picture_set_id (FrogrPicture *self,
                       const gchar *id)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PICTURE(self));
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  g_free (priv->id);
-  priv->id = g_strdup (id);
+  g_free (self->id);
+  self->id = g_strdup (id);
 }
 
 const gchar *
 frogr_picture_get_fileuri (FrogrPicture *self)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PICTURE(self), NULL);
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  return (const gchar *)priv->fileuri;
+  return (const gchar *)self->fileuri;
 }
 
 const gchar *
 frogr_picture_get_title (FrogrPicture *self)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PICTURE(self), NULL);
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  return (const gchar *)priv->title;
+  return (const gchar *)self->title;
 }
 
 void
 frogr_picture_set_title (FrogrPicture *self,
                          const gchar *title)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PICTURE(self));
   g_return_if_fail(title != NULL);
 
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  g_free (priv->title);
-  priv->title = g_strdup (title);
+  g_free (self->title);
+  self->title = g_strdup (title);
 }
 
 const gchar *
 frogr_picture_get_description (FrogrPicture *self)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PICTURE(self), NULL);
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  return (const gchar *)priv->description;
+  return (const gchar *)self->description;
 }
 
 void
 frogr_picture_set_description (FrogrPicture *self,
                                const gchar *description)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PICTURE(self));
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  g_free (priv->description);
-  priv->description = g_strdup (description);
+  g_free (self->description);
+  self->description = g_strdup (description);
 }
 
 const GSList *
 frogr_picture_get_tags_list (FrogrPicture *self)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PICTURE(self), NULL);
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  return priv->tags_list;
+  return self->tags_list;
 }
 
 const gchar *
 frogr_picture_get_tags (FrogrPicture *self)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PICTURE(self), NULL);
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  return priv->tags_string;
+  return self->tags_string;
 }
 
 void
 frogr_picture_set_tags (FrogrPicture *self, const gchar *tags_string)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PICTURE(self));
 
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-
   /* First remove all the previous tags list */
-  g_slist_foreach (priv->tags_list, (GFunc) g_free, NULL);
-  g_slist_free (priv->tags_list);
-  priv->tags_list = NULL;
+  g_slist_foreach (self->tags_list, (GFunc) g_free, NULL);
+  g_slist_free (self->tags_list);
+  self->tags_list = NULL;
 
   /* Add to internal tags_list */
   _add_tags_to_tags_list (self, tags_string);
@@ -987,343 +935,227 @@ frogr_picture_remove_tags (FrogrPicture *self)
 gboolean
 frogr_picture_is_public (FrogrPicture *self)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PICTURE(self), FALSE);
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  return priv->is_public;
+  return self->is_public;
 }
 
 void
 frogr_picture_set_public (FrogrPicture *self,
                           gboolean public)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PICTURE(self));
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  priv->is_public = public;
+  self->is_public = public;
 }
 
 gboolean
 frogr_picture_is_friend (FrogrPicture *self)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PICTURE(self), FALSE);
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  return priv->is_friend;
+  return self->is_friend;
 }
 
 void
 frogr_picture_set_friend (FrogrPicture *self,
                           gboolean friend)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PICTURE(self));
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  priv->is_friend = friend;
+  self->is_friend = friend;
 }
 
 gboolean
 frogr_picture_is_family (FrogrPicture *self)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PICTURE(self), FALSE);
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  return priv->is_family;
+  return self->is_family;
 }
 
 void
 frogr_picture_set_family (FrogrPicture *self,
                           gboolean family)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PICTURE(self));
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  priv->is_family = family;
+  self->is_family = family;
 }
 
 FspSafetyLevel
 frogr_picture_get_safety_level (FrogrPicture *self)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PICTURE(self), FALSE);
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  return priv->safety_level;
+  return self->safety_level;
 }
 
 void
 frogr_picture_set_safety_level (FrogrPicture *self,
                                 FspSafetyLevel safety_level)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PICTURE(self));
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  priv->safety_level = safety_level;
+  self->safety_level = safety_level;
 }
 
 FspContentType
 frogr_picture_get_content_type (FrogrPicture *self)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PICTURE(self), FALSE);
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  return priv->content_type;
+  return self->content_type;
 }
 
 void
 frogr_picture_set_content_type (FrogrPicture *self,
                                 FspContentType content_type)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PICTURE(self));
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  priv->content_type = content_type;
+  self->content_type = content_type;
 }
 
 FspLicense
 frogr_picture_get_license (FrogrPicture *self)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PICTURE(self), FALSE);
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  return priv->license;
+  return self->license;
 }
 
 void
 frogr_picture_set_license (FrogrPicture *self, FspLicense license)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PICTURE(self));
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  priv->license = license;
+  self->license = license;
 }
 
 FrogrLocation *
 frogr_picture_get_location (FrogrPicture *self)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PICTURE(self), FALSE);
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  return priv->location;
+  return self->location;
 }
 
 void
 frogr_picture_set_location (FrogrPicture *self, FrogrLocation *location)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PICTURE(self));
 
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  if (priv->location)
-    g_object_unref (priv->location);
+  if (self->location)
+    g_object_unref (self->location);
 
-  priv->location = FROGR_IS_LOCATION (location) ? g_object_ref (location) : NULL;
+  self->location = FROGR_IS_LOCATION (location) ? g_object_ref (location) : NULL;
 }
 
 gboolean
 frogr_picture_show_in_search (FrogrPicture *self)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PICTURE(self), FALSE);
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  return priv->show_in_search;
+  return self->show_in_search;
 }
 
 void
 frogr_picture_set_show_in_search (FrogrPicture *self,
                                   gboolean show_in_search)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PICTURE(self));
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  priv->show_in_search = show_in_search;
+  self->show_in_search = show_in_search;
 }
 
 gboolean
 frogr_picture_send_location (FrogrPicture *self)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PICTURE(self), FALSE);
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  return priv->send_location;
+  return self->send_location;
 }
 
 void
 frogr_picture_set_send_location (FrogrPicture *self, gboolean send_location)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PICTURE(self));
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  priv->send_location = send_location;
+  self->send_location = send_location;
 }
 
 gboolean
 frogr_picture_replace_date_posted (FrogrPicture *self)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PICTURE(self), FALSE);
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  return priv->replace_date_posted;
+  return self->replace_date_posted;
 }
 
 void
 frogr_picture_set_replace_date_posted (FrogrPicture *self, gboolean replace_date_posted)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PICTURE(self));
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  priv->replace_date_posted = replace_date_posted;
+  self->replace_date_posted = replace_date_posted;
 }
 
 GdkPixbuf *
 frogr_picture_get_pixbuf (FrogrPicture *self)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PICTURE(self), NULL);
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  return priv->pixbuf;
+  return self->pixbuf;
 }
 
 void
 frogr_picture_set_pixbuf (FrogrPicture *self,
                           GdkPixbuf *pixbuf)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PICTURE(self));
 
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  if (priv->pixbuf)
-    g_object_unref (priv->pixbuf);
+  if (self->pixbuf)
+    g_object_unref (self->pixbuf);
 
-  priv->pixbuf = GDK_IS_PIXBUF (pixbuf) ? g_object_ref (pixbuf) : NULL;
+  self->pixbuf = GDK_IS_PIXBUF (pixbuf) ? g_object_ref (pixbuf) : NULL;
 }
 
 gboolean frogr_picture_is_video (FrogrPicture *self)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PICTURE(self), FALSE);
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  return priv->is_video;
+  return self->is_video;
 }
 
 guint frogr_picture_get_filesize (FrogrPicture *self)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PICTURE(self), 0);
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  return priv->filesize;
+  return self->filesize;
 }
 
 void frogr_picture_set_filesize (FrogrPicture *self, guint filesize)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PICTURE(self));
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  priv->filesize = filesize;
+  self->filesize = filesize;
 }
 
 void
 frogr_picture_set_datetime (FrogrPicture *self, const gchar *datetime)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PICTURE(self));
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  g_free (priv->datetime);
-  priv->datetime = g_strdup (datetime);
+  g_free (self->datetime);
+  self->datetime = g_strdup (datetime);
 }
 
 const gchar *
 frogr_picture_get_datetime (FrogrPicture *self)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PICTURE(self), 0);
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  return (const gchar *)priv->datetime;
+  return (const gchar *)self->datetime;
 }
 
 GSList *
 frogr_picture_get_photosets (FrogrPicture *self)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PICTURE(self), NULL);
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  return priv->photosets;
+  return self->photosets;
 }
 
 void
 frogr_picture_set_photosets (FrogrPicture *self, GSList *photosets)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PICTURE(self));
 
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-
   /* First remove all the previous sets list */
-  g_slist_foreach (priv->photosets, (GFunc) g_object_unref, NULL);
-  g_slist_free (priv->photosets);
+  g_slist_foreach (self->photosets, (GFunc) g_object_unref, NULL);
+  g_slist_free (self->photosets);
 
-  priv->photosets = photosets;
+  self->photosets = photosets;
 }
 
 void
 frogr_picture_add_photoset (FrogrPicture *self, FrogrPhotoSet *photoset)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PICTURE(self));
   g_return_if_fail(FROGR_IS_PHOTOSET(photoset));
 
@@ -1331,8 +1163,7 @@ frogr_picture_add_photoset (FrogrPicture *self, FrogrPhotoSet *photoset)
   if (frogr_picture_in_photoset (self, photoset))
     return;
 
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  priv->photosets = g_slist_append (priv->photosets, g_object_ref (photoset));
+  self->photosets = g_slist_append (self->photosets, g_object_ref (photoset));
 }
 
 void
@@ -1346,12 +1177,9 @@ frogr_picture_remove_photosets (FrogrPicture *self)
 gboolean
 frogr_picture_in_photoset (FrogrPicture *self, FrogrPhotoSet *photoset)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PICTURE(self), FALSE);
 
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  if (g_slist_find_custom (priv->photosets, photoset,
+  if (g_slist_find_custom (self->photosets, photoset,
                            (GCompareFunc)_compare_photosets))
     return TRUE;
 
@@ -1361,35 +1189,25 @@ frogr_picture_in_photoset (FrogrPicture *self, FrogrPhotoSet *photoset)
 GSList *
 frogr_picture_get_groups (FrogrPicture *self)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PICTURE(self), NULL);
-
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  return priv->groups;
+  return self->groups;
 }
 
 void
 frogr_picture_set_groups (FrogrPicture *self, GSList *groups)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PICTURE(self));
 
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-
   /* First remove all the previous groups list */
-  g_slist_foreach (priv->groups, (GFunc) g_object_unref, NULL);
-  g_slist_free (priv->groups);
+  g_slist_foreach (self->groups, (GFunc) g_object_unref, NULL);
+  g_slist_free (self->groups);
 
-  priv->groups = groups;
+  self->groups = groups;
 }
 
 void
 frogr_picture_add_group (FrogrPicture *self, FrogrGroup *group)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_if_fail(FROGR_IS_PICTURE(self));
   g_return_if_fail(FROGR_IS_GROUP(group));
 
@@ -1397,8 +1215,7 @@ frogr_picture_add_group (FrogrPicture *self, FrogrGroup *group)
   if (frogr_picture_in_group (self, group))
     return;
 
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  priv->groups = g_slist_append (priv->groups, g_object_ref (group));
+  self->groups = g_slist_append (self->groups, g_object_ref (group));
 }
 
 void
@@ -1412,12 +1229,9 @@ frogr_picture_remove_groups (FrogrPicture *self)
 gboolean
 frogr_picture_in_group (FrogrPicture *self, FrogrGroup *group)
 {
-  FrogrPicturePrivate *priv = NULL;
-
   g_return_val_if_fail(FROGR_IS_PICTURE(self), FALSE);
 
-  priv = FROGR_PICTURE_GET_PRIVATE (self);
-  if (g_slist_find_custom (priv->groups, group,
+  if (g_slist_find_custom (self->groups, group,
                            (GCompareFunc)_compare_groups))
     return TRUE;
 
diff --git a/src/frogr-picture.h b/src/frogr-picture.h
index b16c0bf..46a1e34 100644
--- a/src/frogr-picture.h
+++ b/src/frogr-picture.h
@@ -32,28 +32,9 @@
 
 G_BEGIN_DECLS
 
-#define FROGR_TYPE_PICTURE           (frogr_picture_get_type())
-#define FROGR_PICTURE(obj)           (G_TYPE_CHECK_INSTANCE_CAST(obj, FROGR_TYPE_PICTURE, FrogrPicture))
-#define FROGR_PICTURE_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST(klass, FROGR_TYPE_PICTURE, FrogrPictureClass))
-#define FROGR_IS_PICTURE(obj)           (G_TYPE_CHECK_INSTANCE_TYPE(obj, FROGR_TYPE_PICTURE))
-#define FROGR_IS_PICTURE_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE((klass), FROGR_TYPE_PICTURE))
-#define FROGR_PICTURE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FROGR_TYPE_PICTURE, 
FrogrPictureClass))
+#define FROGR_TYPE_PICTURE (frogr_picture_get_type())
 
-typedef struct _FrogrPicture FrogrPicture;
-typedef struct _FrogrPictureClass FrogrPictureClass;
-
-struct _FrogrPicture
-{
-  GObject parent_instance;
-};
-
-struct _FrogrPictureClass
-{
-  GObjectClass parent_class;
-};
-
-
-GType frogr_picture_get_type(void) G_GNUC_CONST;
+G_DECLARE_FINAL_TYPE (FrogrPicture, frogr_picture, FROGR, PICTURE, GObject)
 
 /* Constructor */
 FrogrPicture *frogr_picture_new (const gchar *fileuri,
diff --git a/src/frogr-settings-dialog.c b/src/frogr-settings-dialog.c
index 2f9d75d..5429dc7 100644
--- a/src/frogr-settings-dialog.c
+++ b/src/frogr-settings-dialog.c
@@ -29,14 +29,10 @@
 #include <glib/gi18n.h>
 #include <flicksoup/flicksoup.h>
 
-#define FROGR_SETTINGS_DIALOG_GET_PRIVATE(object)                \
-  (G_TYPE_INSTANCE_GET_PRIVATE ((object),                       \
-                                FROGR_TYPE_SETTINGS_DIALOG,      \
-                                FrogrSettingsDialogPrivate))
 
-G_DEFINE_TYPE (FrogrSettingsDialog, frogr_settings_dialog, GTK_TYPE_DIALOG)
+struct _FrogrSettingsDialog {
+  GtkDialog parent;
 
-typedef struct _FrogrSettingsDialogPrivate {
   FrogrController *controller;
   FrogrConfig *config;
 
@@ -90,7 +86,9 @@ typedef struct _FrogrSettingsDialogPrivate {
   gchar *proxy_port;
   gchar *proxy_username;
   gchar *proxy_password;
-} FrogrSettingsDialogPrivate;
+};
+
+G_DEFINE_TYPE (FrogrSettingsDialog, frogr_settings_dialog, GTK_TYPE_DIALOG)
 
 
 static FrogrSettingsDialog *_instance = NULL;
@@ -164,7 +162,6 @@ _add_toggleable_item (FrogrSettingsDialog *self, GtkBox *box,
 static void
 _add_general_page (FrogrSettingsDialog *self, GtkNotebook *notebook)
 {
-  FrogrSettingsDialogPrivate *priv = NULL;
   GtkWidget *vbox = NULL;
   GtkWidget *gbox = NULL;
   GtkWidget *box1 = NULL;
@@ -175,8 +172,6 @@ _add_general_page (FrogrSettingsDialog *self, GtkNotebook *notebook)
   gchar *markup = NULL;
   gint i;
 
-  priv = FROGR_SETTINGS_DIALOG_GET_PRIVATE (self);
-
   vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 12);
 
   /* Default Visibility */
@@ -198,10 +193,10 @@ _add_general_page (FrogrSettingsDialog *self, GtkNotebook *notebook)
   box2 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
 
   _add_toggleable_item (self, GTK_BOX (box2), NULL,
-                        TRUE, _("_Private"), &priv->private_rb);
+                        TRUE, _("_Private"), &self->private_rb);
 
-  _add_toggleable_item (self, GTK_BOX (box2), GTK_RADIO_BUTTON (priv->private_rb),
-                        FALSE, _("P_ublic"), &priv->public_rb);
+  _add_toggleable_item (self, GTK_BOX (box2), GTK_RADIO_BUTTON (self->private_rb),
+                        FALSE, _("P_ublic"), &self->public_rb);
 
   gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
 
@@ -209,9 +204,9 @@ _add_general_page (FrogrSettingsDialog *self, GtkNotebook *notebook)
   box3 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
 
   _add_toggleable_item (self, GTK_BOX (box3), NULL, FALSE,
-                        _("_Family"), &priv->family_cb);
+                        _("_Family"), &self->family_cb);
   _add_toggleable_item (self, GTK_BOX (box3), NULL, FALSE,
-                        _("F_riends"), &priv->friend_cb);
+                        _("F_riends"), &self->friend_cb);
 
   gtk_box_pack_start (GTK_BOX (box2), box3, FALSE, FALSE, 12);
   gtk_box_pack_start (GTK_BOX (box1), box2, FALSE, FALSE, 0);
@@ -236,11 +231,11 @@ _add_general_page (FrogrSettingsDialog *self, GtkNotebook *notebook)
   box1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
 
   _add_toggleable_item (self, GTK_BOX (box1), NULL, TRUE,
-                        _("P_hoto"), &priv->photo_content_rb);
-  _add_toggleable_item (self, GTK_BOX (box1), GTK_RADIO_BUTTON (priv->photo_content_rb),
-                        FALSE, _("Scree_nshot"), &priv->sshot_content_rb);
-  _add_toggleable_item (self, GTK_BOX (box1), GTK_RADIO_BUTTON (priv->photo_content_rb),
-                        FALSE, _("Oth_er"), &priv->other_content_rb);
+                        _("P_hoto"), &self->photo_content_rb);
+  _add_toggleable_item (self, GTK_BOX (box1), GTK_RADIO_BUTTON (self->photo_content_rb),
+                        FALSE, _("Scree_nshot"), &self->sshot_content_rb);
+  _add_toggleable_item (self, GTK_BOX (box1), GTK_RADIO_BUTTON (self->photo_content_rb),
+                        FALSE, _("Oth_er"), &self->other_content_rb);
 
   gtk_box_pack_start (GTK_BOX (gbox), box1, FALSE, FALSE, 0);
 
@@ -262,11 +257,11 @@ _add_general_page (FrogrSettingsDialog *self, GtkNotebook *notebook)
   box1 = gtk_box_new (GTK_ORIENTATION_HORIZONTAL, 6);
 
   _add_toggleable_item (self, GTK_BOX (box1), NULL, TRUE,
-                        _("S_afe"), &priv->safe_rb);
-  _add_toggleable_item (self, GTK_BOX (box1), GTK_RADIO_BUTTON (priv->safe_rb),
-                        FALSE, _("_Moderate"), &priv->moderate_rb);
-  _add_toggleable_item (self, GTK_BOX (box1), GTK_RADIO_BUTTON (priv->safe_rb),
-                        FALSE, _("Restr_icted"), &priv->restricted_rb);
+                        _("S_afe"), &self->safe_rb);
+  _add_toggleable_item (self, GTK_BOX (box1), GTK_RADIO_BUTTON (self->safe_rb),
+                        FALSE, _("_Moderate"), &self->moderate_rb);
+  _add_toggleable_item (self, GTK_BOX (box1), GTK_RADIO_BUTTON (self->safe_rb),
+                        FALSE, _("Restr_icted"), &self->restricted_rb);
 
   gtk_box_pack_start (GTK_BOX (gbox), box1, FALSE, FALSE, 0);
 
@@ -290,9 +285,9 @@ _add_general_page (FrogrSettingsDialog *self, GtkNotebook *notebook)
     gtk_combo_box_text_insert (GTK_COMBO_BOX_TEXT (combo), i, NULL, _(license_descriptions[i]));
 
   gtk_box_pack_start (GTK_BOX (gbox), combo, FALSE, FALSE, 0);
-  priv->license_cb = combo;
+  self->license_cb = combo;
 
-  g_signal_connect (G_OBJECT (priv->license_cb), "changed",
+  g_signal_connect (G_OBJECT (self->license_cb), "changed",
                     G_CALLBACK (_on_combo_changed),
                     self);
 
@@ -315,13 +310,13 @@ _add_general_page (FrogrSettingsDialog *self, GtkNotebook *notebook)
 
   _add_toggleable_item (self, GTK_BOX (box1), NULL, FALSE,
                         _("_Show Pictures in Global Search Results"),
-                        &priv->show_in_search_cb);
+                        &self->show_in_search_cb);
   _add_toggleable_item (self, GTK_BOX (box1), NULL, FALSE,
                         _("Set Geo_location Information for Pictures"),
-                        &priv->send_geolocation_data_cb);
+                        &self->send_geolocation_data_cb);
   _add_toggleable_item (self, GTK_BOX (box1), NULL, FALSE,
                         _("Replace 'Date Posted' with 'Date Taken' for Pictures"),
-                        &priv->replace_date_posted_cb);
+                        &self->replace_date_posted_cb);
 
   gtk_box_pack_start (GTK_BOX (gbox), box1, FALSE, FALSE, 0);
 
@@ -332,7 +327,6 @@ _add_general_page (FrogrSettingsDialog *self, GtkNotebook *notebook)
 static void
 _add_connection_page (FrogrSettingsDialog *self, GtkNotebook *notebook)
 {
-  FrogrSettingsDialogPrivate *priv = NULL;
   GtkWidget *vbox = NULL;
   GtkWidget *grid = NULL;
   GtkWidget *cbutton = NULL;
@@ -340,8 +334,6 @@ _add_connection_page (FrogrSettingsDialog *self, GtkNotebook *notebook)
   GtkWidget *entry = NULL;
   gchar *markup = NULL;
 
-  priv = FROGR_SETTINGS_DIALOG_GET_PRIVATE (self);
-
   vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
 
   /* Proxy settings */
@@ -360,7 +352,7 @@ _add_connection_page (FrogrSettingsDialog *self, GtkNotebook *notebook)
 
   cbutton = gtk_check_button_new_with_mnemonic (_("_Enable HTTP Proxy"));
   gtk_box_pack_start (GTK_BOX (vbox), cbutton, FALSE, FALSE, 0);
-  priv->use_proxy_cb = cbutton;
+  self->use_proxy_cb = cbutton;
 
   /* Proxy host */
 
@@ -371,62 +363,62 @@ _add_connection_page (FrogrSettingsDialog *self, GtkNotebook *notebook)
   label = gtk_label_new_with_mnemonic (_("_Host:"));
   gtk_widget_set_halign (GTK_WIDGET (label), GTK_ALIGN_END);
   gtk_grid_attach (GTK_GRID (grid), label, 0, 0, 1, 1);
-  priv->proxy_host_label = label;
+  self->proxy_host_label = label;
 
   entry = gtk_entry_new ();
   gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry);
   gtk_widget_set_hexpand (GTK_WIDGET (entry), TRUE);
   gtk_grid_attach (GTK_GRID (grid), entry, 1, 0, 1, 1);
-  priv->proxy_host_entry = entry;
+  self->proxy_host_entry = entry;
 
   /* Proxy port */
 
   label = gtk_label_new_with_mnemonic (_("_Port:"));
   gtk_widget_set_halign (GTK_WIDGET (label), GTK_ALIGN_END);
   gtk_grid_attach (GTK_GRID (grid), label, 0, 1, 1, 1);
-  priv->proxy_port_label = label;
+  self->proxy_port_label = label;
 
   entry = gtk_entry_new ();
   gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry);
   gtk_widget_set_hexpand (GTK_WIDGET (entry), TRUE);
   gtk_grid_attach (GTK_GRID (grid), entry, 1, 1, 1, 1);
-  priv->proxy_port_entry = entry;
+  self->proxy_port_entry = entry;
 
   /* Proxy username */
 
   label = gtk_label_new_with_mnemonic (_("U_sername:"));
   gtk_widget_set_halign (GTK_WIDGET (label), GTK_ALIGN_END);
   gtk_grid_attach (GTK_GRID (grid), label, 0, 2, 1, 1);
-  priv->proxy_username_label = label;
+  self->proxy_username_label = label;
 
   entry = gtk_entry_new ();
   gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry);
   gtk_widget_set_hexpand (GTK_WIDGET (entry), TRUE);
   gtk_grid_attach (GTK_GRID (grid), entry, 1, 2, 1, 1);
-  priv->proxy_username_entry = entry;
+  self->proxy_username_entry = entry;
 
   /* Proxy password */
 
   label = gtk_label_new_with_mnemonic (_("Pass_word:"));
   gtk_widget_set_halign (GTK_WIDGET (label), GTK_ALIGN_END);
   gtk_grid_attach (GTK_GRID (grid), label, 0, 3, 1, 1);
-  priv->proxy_password_label = label;
+  self->proxy_password_label = label;
 
   entry = gtk_entry_new ();
   gtk_label_set_mnemonic_widget (GTK_LABEL (label), entry);
   gtk_entry_set_visibility (GTK_ENTRY (entry), FALSE);
   gtk_widget_set_hexpand (GTK_WIDGET (entry), TRUE);
   gtk_grid_attach (GTK_GRID (grid), entry, 1, 3, 1, 1);
-  priv->proxy_password_entry = entry;
+  self->proxy_password_entry = entry;
 
   gtk_box_pack_start (GTK_BOX (vbox), grid, FALSE, FALSE, 0);
 
   /* Connect signals */
-  g_signal_connect (G_OBJECT (priv->use_proxy_cb), "toggled",
+  g_signal_connect (G_OBJECT (self->use_proxy_cb), "toggled",
                     G_CALLBACK (_on_button_toggled),
                     self);
 
-  g_signal_connect (G_OBJECT (priv->proxy_port_entry), "insert-text",
+  g_signal_connect (G_OBJECT (self->proxy_port_entry), "insert-text",
                     G_CALLBACK (_proxy_port_inserted_cb),
                     NULL);
 
@@ -437,14 +429,11 @@ _add_connection_page (FrogrSettingsDialog *self, GtkNotebook *notebook)
 static void
 _add_misc_page (FrogrSettingsDialog *self, GtkNotebook *notebook)
 {
-  FrogrSettingsDialogPrivate *priv = NULL;
   GtkWidget *vbox = NULL;
   GtkWidget *box = NULL;
   GtkWidget *label = NULL;
   gchar *markup = NULL;
 
-  priv = FROGR_SETTINGS_DIALOG_GET_PRIVATE (self);
-
   vbox = gtk_box_new (GTK_ORIENTATION_VERTICAL, 6);
 
   /* Other Stuff */
@@ -463,18 +452,18 @@ _add_misc_page (FrogrSettingsDialog *self, GtkNotebook *notebook)
 
   _add_toggleable_item (self, GTK_BOX (box), NULL, FALSE,
                         _("Ena_ble Tags Auto-Completion"),
-                        &priv->enable_tags_autocompletion_cb);
+                        &self->enable_tags_autocompletion_cb);
   _add_toggleable_item (self, GTK_BOX (box), NULL, FALSE,
                         _("_Import Tags from Pictures Metadata"),
-                        &priv->import_tags_cb);
+                        &self->import_tags_cb);
 
   _add_toggleable_item (self, GTK_BOX (box), NULL, FALSE,
                         _("Use _Dark GTK Theme"),
-                        &priv->use_dark_theme_cb);
+                        &self->use_dark_theme_cb);
 
   _add_toggleable_item (self, GTK_BOX (box), NULL, FALSE,
                         _("_Keep File Extensions in Titles when Loading"),
-                        &priv->keep_file_extensions_cb);
+                        &self->keep_file_extensions_cb);
 
   gtk_box_pack_start (GTK_BOX (vbox), box, FALSE, FALSE, 0);
 
@@ -485,103 +474,100 @@ _add_misc_page (FrogrSettingsDialog *self, GtkNotebook *notebook)
 static void
 _fill_dialog_with_data (FrogrSettingsDialog *self)
 {
-  FrogrSettingsDialogPrivate *priv =
-    FROGR_SETTINGS_DIALOG_GET_PRIVATE (self);
-
   /* Get data from configuration */
-  priv->public_visibility = frogr_config_get_default_public (priv->config);
-  priv->family_visibility = frogr_config_get_default_family (priv->config);
-  priv->friend_visibility = frogr_config_get_default_friend (priv->config);
-  priv->show_in_search = frogr_config_get_default_show_in_search (priv->config);
-  priv->send_geolocation_data = frogr_config_get_default_send_geolocation_data (priv->config);
-  priv->replace_date_posted = frogr_config_get_default_replace_date_posted (priv->config);
-  priv->license = frogr_config_get_default_license (priv->config);
-  priv->content_type = frogr_config_get_default_content_type (priv->config);
-  priv->safety_level = frogr_config_get_default_safety_level (priv->config);
-  priv->enable_tags_autocompletion = frogr_config_get_tags_autocompletion (priv->config);
-  priv->keep_file_extensions = frogr_config_get_keep_file_extensions (priv->config);
-  priv->import_tags = frogr_config_get_import_tags_from_metadata (priv->config);
-  priv->use_dark_theme = frogr_config_get_use_dark_theme (priv->config);
-  priv->use_proxy = frogr_config_get_use_proxy (priv->config);
-
-  g_free (priv->proxy_host);
-  priv->proxy_host = g_strdup (frogr_config_get_proxy_host (priv->config));
-  if (priv->proxy_host)
-    g_strstrip (priv->proxy_host);
-
-  g_free (priv->proxy_port);
-  priv->proxy_port = g_strdup (frogr_config_get_proxy_port (priv->config));
-  if (priv->proxy_port)
-    g_strstrip (priv->proxy_port);
-
-  g_free (priv->proxy_username);
-  priv->proxy_username = g_strdup (frogr_config_get_proxy_username (priv->config));
-  if (priv->proxy_username)
-    g_strstrip (priv->proxy_username);
-
-  g_free (priv->proxy_password);
-  priv->proxy_password = g_strdup (frogr_config_get_proxy_password (priv->config));
-  if (priv->proxy_password)
-    g_strstrip (priv->proxy_password);
+  self->public_visibility = frogr_config_get_default_public (self->config);
+  self->family_visibility = frogr_config_get_default_family (self->config);
+  self->friend_visibility = frogr_config_get_default_friend (self->config);
+  self->show_in_search = frogr_config_get_default_show_in_search (self->config);
+  self->send_geolocation_data = frogr_config_get_default_send_geolocation_data (self->config);
+  self->replace_date_posted = frogr_config_get_default_replace_date_posted (self->config);
+  self->license = frogr_config_get_default_license (self->config);
+  self->content_type = frogr_config_get_default_content_type (self->config);
+  self->safety_level = frogr_config_get_default_safety_level (self->config);
+  self->enable_tags_autocompletion = frogr_config_get_tags_autocompletion (self->config);
+  self->keep_file_extensions = frogr_config_get_keep_file_extensions (self->config);
+  self->import_tags = frogr_config_get_import_tags_from_metadata (self->config);
+  self->use_dark_theme = frogr_config_get_use_dark_theme (self->config);
+  self->use_proxy = frogr_config_get_use_proxy (self->config);
+
+  g_free (self->proxy_host);
+  self->proxy_host = g_strdup (frogr_config_get_proxy_host (self->config));
+  if (self->proxy_host)
+    g_strstrip (self->proxy_host);
+
+  g_free (self->proxy_port);
+  self->proxy_port = g_strdup (frogr_config_get_proxy_port (self->config));
+  if (self->proxy_port)
+    g_strstrip (self->proxy_port);
+
+  g_free (self->proxy_username);
+  self->proxy_username = g_strdup (frogr_config_get_proxy_username (self->config));
+  if (self->proxy_username)
+    g_strstrip (self->proxy_username);
+
+  g_free (self->proxy_password);
+  self->proxy_password = g_strdup (frogr_config_get_proxy_password (self->config));
+  if (self->proxy_password)
+    g_strstrip (self->proxy_password);
 
   /* Update widgets' values */
 
-  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->public_rb),
-                                priv->public_visibility);
-  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->private_rb),
-                                !priv->public_visibility);
-  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->family_cb),
-                                priv->family_visibility);
-  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->friend_cb),
-                                priv->friend_visibility);
-  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->show_in_search_cb),
-                                priv->show_in_search);
-  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->send_geolocation_data_cb),
-                                priv->send_geolocation_data);
-  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->replace_date_posted_cb),
-                                priv->replace_date_posted);
-
-  if (priv->license >= FSP_LICENSE_NONE && priv->license < FSP_LICENSE_LAST)
-    gtk_combo_box_set_active (GTK_COMBO_BOX (priv->license_cb), priv->license + 1);
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->public_rb),
+                                self->public_visibility);
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->private_rb),
+                                !self->public_visibility);
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->family_cb),
+                                self->family_visibility);
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->friend_cb),
+                                self->friend_visibility);
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->show_in_search_cb),
+                                self->show_in_search);
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->send_geolocation_data_cb),
+                                self->send_geolocation_data);
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->replace_date_posted_cb),
+                                self->replace_date_posted);
+
+  if (self->license >= FSP_LICENSE_NONE && self->license < FSP_LICENSE_LAST)
+    gtk_combo_box_set_active (GTK_COMBO_BOX (self->license_cb), self->license + 1);
   else
-    gtk_combo_box_set_active (GTK_COMBO_BOX (priv->license_cb), FSP_LICENSE_NONE + 1);
+    gtk_combo_box_set_active (GTK_COMBO_BOX (self->license_cb), FSP_LICENSE_NONE + 1);
 
-  if (priv->content_type == FSP_CONTENT_TYPE_SCREENSHOT)
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->sshot_content_rb), TRUE);
-  else if (priv->content_type == FSP_CONTENT_TYPE_OTHER)
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->other_content_rb), TRUE);
+  if (self->content_type == FSP_CONTENT_TYPE_SCREENSHOT)
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->sshot_content_rb), TRUE);
+  else if (self->content_type == FSP_CONTENT_TYPE_OTHER)
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->other_content_rb), TRUE);
   else
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->photo_content_rb), TRUE);
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->photo_content_rb), TRUE);
 
-  if (priv->safety_level == FSP_SAFETY_LEVEL_MODERATE)
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->moderate_rb), TRUE);
-  else if (priv->safety_level == FSP_SAFETY_LEVEL_RESTRICTED)
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->restricted_rb), TRUE);
+  if (self->safety_level == FSP_SAFETY_LEVEL_MODERATE)
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->moderate_rb), TRUE);
+  else if (self->safety_level == FSP_SAFETY_LEVEL_RESTRICTED)
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->restricted_rb), TRUE);
   else
-    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->safe_rb), TRUE);
+    gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->safe_rb), TRUE);
 
-  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->enable_tags_autocompletion_cb),
-                                priv->enable_tags_autocompletion);
-  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->keep_file_extensions_cb),
-                                priv->keep_file_extensions);
-  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->import_tags_cb),
-                                priv->import_tags);
-  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->use_dark_theme_cb),
-                                priv->use_dark_theme);
-  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->use_proxy_cb),
-                                priv->use_proxy);
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->enable_tags_autocompletion_cb),
+                                self->enable_tags_autocompletion);
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->keep_file_extensions_cb),
+                                self->keep_file_extensions);
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->import_tags_cb),
+                                self->import_tags);
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->use_dark_theme_cb),
+                                self->use_dark_theme);
+  gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->use_proxy_cb),
+                                self->use_proxy);
 
-  if (priv->proxy_host)
-    gtk_entry_set_text (GTK_ENTRY (priv->proxy_host_entry), priv->proxy_host);
+  if (self->proxy_host)
+    gtk_entry_set_text (GTK_ENTRY (self->proxy_host_entry), self->proxy_host);
 
-  if (priv->proxy_port)
-    gtk_entry_set_text (GTK_ENTRY (priv->proxy_port_entry), priv->proxy_port);
+  if (self->proxy_port)
+    gtk_entry_set_text (GTK_ENTRY (self->proxy_port_entry), self->proxy_port);
 
-  if (priv->proxy_username)
-    gtk_entry_set_text (GTK_ENTRY (priv->proxy_username_entry), priv->proxy_username);
+  if (self->proxy_username)
+    gtk_entry_set_text (GTK_ENTRY (self->proxy_username_entry), self->proxy_username);
 
-  if (priv->proxy_password)
-    gtk_entry_set_text (GTK_ENTRY (priv->proxy_password_entry), priv->proxy_password);
+  if (self->proxy_password)
+    gtk_entry_set_text (GTK_ENTRY (self->proxy_password_entry), self->proxy_password);
 
   /* Update UI */
 
@@ -591,53 +577,50 @@ _fill_dialog_with_data (FrogrSettingsDialog *self)
 static gboolean
 _save_data (FrogrSettingsDialog *self)
 {
-  FrogrSettingsDialogPrivate *priv =
-    FROGR_SETTINGS_DIALOG_GET_PRIVATE (self);
-
-  frogr_config_set_default_public (priv->config, priv->public_visibility);
-  frogr_config_set_default_family (priv->config, priv->family_visibility);
-  frogr_config_set_default_friend (priv->config, priv->friend_visibility);
-  frogr_config_set_default_show_in_search (priv->config, priv->show_in_search);
-  frogr_config_set_default_send_geolocation_data (priv->config, priv->send_geolocation_data);
-  frogr_config_set_default_replace_date_posted (priv->config, priv->replace_date_posted);
-
-  frogr_config_set_default_license (priv->config, priv->license);
-  frogr_config_set_default_content_type (priv->config, priv->content_type);
-  frogr_config_set_default_safety_level (priv->config, priv->safety_level);
-
-  frogr_config_set_tags_autocompletion (priv->config, priv->enable_tags_autocompletion);
-  frogr_config_set_keep_file_extensions (priv->config, priv->keep_file_extensions);
-  frogr_config_set_import_tags_from_metadata (priv->config, priv->import_tags);
-  frogr_config_set_use_dark_theme (priv->config, priv->use_dark_theme);
-
-  frogr_config_set_use_proxy (priv->config, priv->use_proxy);
-
-  g_free (priv->proxy_host);
-  priv->proxy_host = g_strdup (gtk_entry_get_text (GTK_ENTRY (priv->proxy_host_entry)));
-  if (priv->proxy_host)
-    g_strstrip (priv->proxy_host);
-
-  g_free (priv->proxy_port);
-  priv->proxy_port = g_strdup (gtk_entry_get_text (GTK_ENTRY (priv->proxy_port_entry)));
-  if (priv->proxy_port)
-    g_strstrip (priv->proxy_port);
-
-  g_free (priv->proxy_username);
-  priv->proxy_username = g_strdup (gtk_entry_get_text (GTK_ENTRY (priv->proxy_username_entry)));
-  if (priv->proxy_username)
-    g_strstrip (priv->proxy_username);
-
-  g_free (priv->proxy_password);
-  priv->proxy_password = g_strdup (gtk_entry_get_text (GTK_ENTRY (priv->proxy_password_entry)));
-  if (priv->proxy_password)
-    g_strstrip (priv->proxy_password);
-
-  frogr_config_set_proxy_host (priv->config, priv->proxy_host);
-  frogr_config_set_proxy_port (priv->config, priv->proxy_port);
-  frogr_config_set_proxy_username (priv->config, priv->proxy_username);
-  frogr_config_set_proxy_password (priv->config, priv->proxy_password);
-
-  frogr_config_save_settings (priv->config);
+  frogr_config_set_default_public (self->config, self->public_visibility);
+  frogr_config_set_default_family (self->config, self->family_visibility);
+  frogr_config_set_default_friend (self->config, self->friend_visibility);
+  frogr_config_set_default_show_in_search (self->config, self->show_in_search);
+  frogr_config_set_default_send_geolocation_data (self->config, self->send_geolocation_data);
+  frogr_config_set_default_replace_date_posted (self->config, self->replace_date_posted);
+
+  frogr_config_set_default_license (self->config, self->license);
+  frogr_config_set_default_content_type (self->config, self->content_type);
+  frogr_config_set_default_safety_level (self->config, self->safety_level);
+
+  frogr_config_set_tags_autocompletion (self->config, self->enable_tags_autocompletion);
+  frogr_config_set_keep_file_extensions (self->config, self->keep_file_extensions);
+  frogr_config_set_import_tags_from_metadata (self->config, self->import_tags);
+  frogr_config_set_use_dark_theme (self->config, self->use_dark_theme);
+
+  frogr_config_set_use_proxy (self->config, self->use_proxy);
+
+  g_free (self->proxy_host);
+  self->proxy_host = g_strdup (gtk_entry_get_text (GTK_ENTRY (self->proxy_host_entry)));
+  if (self->proxy_host)
+    g_strstrip (self->proxy_host);
+
+  g_free (self->proxy_port);
+  self->proxy_port = g_strdup (gtk_entry_get_text (GTK_ENTRY (self->proxy_port_entry)));
+  if (self->proxy_port)
+    g_strstrip (self->proxy_port);
+
+  g_free (self->proxy_username);
+  self->proxy_username = g_strdup (gtk_entry_get_text (GTK_ENTRY (self->proxy_username_entry)));
+  if (self->proxy_username)
+    g_strstrip (self->proxy_username);
+
+  g_free (self->proxy_password);
+  self->proxy_password = g_strdup (gtk_entry_get_text (GTK_ENTRY (self->proxy_password_entry)));
+  if (self->proxy_password)
+    g_strstrip (self->proxy_password);
+
+  frogr_config_set_proxy_host (self->config, self->proxy_host);
+  frogr_config_set_proxy_port (self->config, self->proxy_port);
+  frogr_config_set_proxy_username (self->config, self->proxy_username);
+  frogr_config_set_proxy_password (self->config, self->proxy_password);
+
+  frogr_config_save_settings (self->config);
 
   /* While no validation process is used, always return TRUR */
   return TRUE;
@@ -646,137 +629,131 @@ _save_data (FrogrSettingsDialog *self)
 static void
 _update_ui (FrogrSettingsDialog *self)
 {
-  FrogrSettingsDialogPrivate *priv = NULL;
-
-  priv = FROGR_SETTINGS_DIALOG_GET_PRIVATE (self);
-
   /* Sensititveness of default visibility related widgets */
 
-  gtk_widget_set_sensitive (priv->friend_cb, !priv->public_visibility);
-  gtk_widget_set_sensitive (priv->family_cb, !priv->public_visibility);
+  gtk_widget_set_sensitive (self->friend_cb, !self->public_visibility);
+  gtk_widget_set_sensitive (self->family_cb, !self->public_visibility);
 
   /* Sensititveness of proxy settings related widgets */
 
-  gtk_widget_set_sensitive (priv->proxy_host_label, priv->use_proxy);
-  gtk_widget_set_sensitive (priv->proxy_host_entry, priv->use_proxy);
-  gtk_widget_set_sensitive (priv->proxy_port_label, priv->use_proxy);
-  gtk_widget_set_sensitive (priv->proxy_port_entry, priv->use_proxy);
-  gtk_widget_set_sensitive (priv->proxy_username_label, priv->use_proxy);
-  gtk_widget_set_sensitive (priv->proxy_username_entry, priv->use_proxy);
-  gtk_widget_set_sensitive (priv->proxy_password_label, priv->use_proxy);
-  gtk_widget_set_sensitive (priv->proxy_password_entry, priv->use_proxy);
+  gtk_widget_set_sensitive (self->proxy_host_label, self->use_proxy);
+  gtk_widget_set_sensitive (self->proxy_host_entry, self->use_proxy);
+  gtk_widget_set_sensitive (self->proxy_port_label, self->use_proxy);
+  gtk_widget_set_sensitive (self->proxy_port_entry, self->use_proxy);
+  gtk_widget_set_sensitive (self->proxy_username_label, self->use_proxy);
+  gtk_widget_set_sensitive (self->proxy_username_entry, self->use_proxy);
+  gtk_widget_set_sensitive (self->proxy_password_label, self->use_proxy);
+  gtk_widget_set_sensitive (self->proxy_password_entry, self->use_proxy);
 }
 
 static void
 _on_button_toggled (GtkToggleButton *button, gpointer data)
 {
   FrogrSettingsDialog *self = NULL;
-  FrogrSettingsDialogPrivate *priv = NULL;
   gboolean active = FALSE;
 
   self = FROGR_SETTINGS_DIALOG (data);
-  priv = FROGR_SETTINGS_DIALOG_GET_PRIVATE (self);
   active = gtk_toggle_button_get_active (button);
 
-  if (GTK_WIDGET (button) == priv->public_rb)
+  if (GTK_WIDGET (button) == self->public_rb)
     {
-      priv->public_visibility = active;
+      self->public_visibility = active;
       DEBUG ("general visibility set to %s", active ? "Public" : "Private");
     }
 
-  if (GTK_WIDGET (button) == priv->family_cb)
+  if (GTK_WIDGET (button) == self->family_cb)
     {
-      priv->family_visibility = active;
+      self->family_visibility = active;
       DEBUG ("family visibility set to %s", active ? "TRUE" : "FALSE");
     }
 
-  if (GTK_WIDGET (button) == priv->friend_cb)
+  if (GTK_WIDGET (button) == self->friend_cb)
     {
-      priv->friend_visibility = active;
+      self->friend_visibility = active;
       DEBUG ("friend visibility set to %s", active ? "TRUE" : "FALSE");
     }
 
-  if (GTK_WIDGET (button) == priv->show_in_search_cb)
+  if (GTK_WIDGET (button) == self->show_in_search_cb)
     {
-      priv->show_in_search = active;
+      self->show_in_search = active;
       DEBUG ("Show up in global search results set to %s", active ? "TRUE" : "FALSE");
     }
 
-  if (GTK_WIDGET (button) == priv->send_geolocation_data_cb)
+  if (GTK_WIDGET (button) == self->send_geolocation_data_cb)
     {
-      priv->send_geolocation_data = active;
+      self->send_geolocation_data = active;
       DEBUG ("Send geolocation data set to %s", active ? "TRUE" : "FALSE");
     }
 
-  if (GTK_WIDGET (button) == priv->replace_date_posted_cb)
+  if (GTK_WIDGET (button) == self->replace_date_posted_cb)
     {
-      priv->replace_date_posted = active;
+      self->replace_date_posted = active;
       DEBUG ("Replace 'Date _Posted' with 'Date Taken' set to %s", active ? "TRUE" : "FALSE");
     }
 
-  if (active && GTK_WIDGET (button) == priv->photo_content_rb)
+  if (active && GTK_WIDGET (button) == self->photo_content_rb)
     {
-      priv->content_type = FSP_CONTENT_TYPE_PHOTO;
-      DEBUG ("Content type set to %d", priv->content_type);
+      self->content_type = FSP_CONTENT_TYPE_PHOTO;
+      DEBUG ("Content type set to %d", self->content_type);
     }
 
-  if (active && GTK_WIDGET (button) == priv->sshot_content_rb)
+  if (active && GTK_WIDGET (button) == self->sshot_content_rb)
     {
-      priv->content_type = FSP_CONTENT_TYPE_SCREENSHOT;
-      DEBUG ("Content type set to %d", priv->content_type);
+      self->content_type = FSP_CONTENT_TYPE_SCREENSHOT;
+      DEBUG ("Content type set to %d", self->content_type);
     }
 
-  if (active && GTK_WIDGET (button) == priv->other_content_rb)
+  if (active && GTK_WIDGET (button) == self->other_content_rb)
     {
-      priv->content_type = FSP_CONTENT_TYPE_OTHER;
-      DEBUG ("Content type set to %d", priv->content_type);
+      self->content_type = FSP_CONTENT_TYPE_OTHER;
+      DEBUG ("Content type set to %d", self->content_type);
     }
 
-  if (active && GTK_WIDGET (button) == priv->safe_rb)
+  if (active && GTK_WIDGET (button) == self->safe_rb)
     {
-      priv->safety_level = FSP_SAFETY_LEVEL_SAFE;
-      DEBUG ("Content type set to %d", priv->safety_level);
+      self->safety_level = FSP_SAFETY_LEVEL_SAFE;
+      DEBUG ("Content type set to %d", self->safety_level);
     }
 
-  if (active && GTK_WIDGET (button) == priv->moderate_rb)
+  if (active && GTK_WIDGET (button) == self->moderate_rb)
     {
-      priv->safety_level = FSP_SAFETY_LEVEL_MODERATE;
-      DEBUG ("Content type set to %d", priv->safety_level);
+      self->safety_level = FSP_SAFETY_LEVEL_MODERATE;
+      DEBUG ("Content type set to %d", self->safety_level);
     }
 
-  if (active && GTK_WIDGET (button) == priv->restricted_rb)
+  if (active && GTK_WIDGET (button) == self->restricted_rb)
     {
-      priv->safety_level = FSP_SAFETY_LEVEL_RESTRICTED;
-      DEBUG ("Content type set to %d", priv->safety_level);
+      self->safety_level = FSP_SAFETY_LEVEL_RESTRICTED;
+      DEBUG ("Content type set to %d", self->safety_level);
     }
 
-  if (GTK_WIDGET (button) == priv->enable_tags_autocompletion_cb)
+  if (GTK_WIDGET (button) == self->enable_tags_autocompletion_cb)
     {
-      priv->enable_tags_autocompletion = active;
+      self->enable_tags_autocompletion = active;
       DEBUG ("Enable tags autocompletion set to %s", active ? "TRUE" : "FALSE");
     }
 
-  if (GTK_WIDGET (button) == priv->keep_file_extensions_cb)
+  if (GTK_WIDGET (button) == self->keep_file_extensions_cb)
     {
-      priv->keep_file_extensions = active;
+      self->keep_file_extensions = active;
       DEBUG ("Keep file extensions in title set to %s", active ? "TRUE" : "FALSE");
     }
 
-  if (GTK_WIDGET (button) == priv->import_tags_cb)
+  if (GTK_WIDGET (button) == self->import_tags_cb)
     {
-      priv->import_tags = active;
+      self->import_tags = active;
       DEBUG ("import tags from pictures metadata set to %s", active ? "TRUE" : "FALSE");
     }
 
-  if (GTK_WIDGET (button) == priv->use_dark_theme_cb)
+  if (GTK_WIDGET (button) == self->use_dark_theme_cb)
     {
-      priv->use_dark_theme = active;
+      self->use_dark_theme = active;
       DEBUG ("Use Dark Theme set to %s", active ? "TRUE" : "FALSE");
     }
 
-  if (GTK_WIDGET (button) == priv->use_proxy_cb)
+  if (GTK_WIDGET (button) == self->use_proxy_cb)
     {
-      priv->use_proxy = active;
+      self->use_proxy = active;
       DEBUG ("Enable HTTP Proxy: %s", active ? "YES" : "NO");
     }
 
@@ -787,14 +764,12 @@ static void
 _on_combo_changed (GtkComboBox *combo_box, gpointer data)
 {
   FrogrSettingsDialog *self = NULL;
-  FrogrSettingsDialogPrivate *priv = NULL;
   gint active_id = 0;
 
   self = FROGR_SETTINGS_DIALOG (data);
-  priv = FROGR_SETTINGS_DIALOG_GET_PRIVATE (self);
 
-  active_id = gtk_combo_box_get_active (GTK_COMBO_BOX (priv->license_cb));
-  priv->license = (FspLicense) active_id - 1;
+  active_id = gtk_combo_box_get_active (GTK_COMBO_BOX (self->license_cb));
+  self->license = (FspLicense) active_id - 1;
 }
 
 static void
@@ -828,7 +803,6 @@ _on_dialog_delete_event (GtkWidget *widget, GdkEvent *event, gpointer data)
 static void _dialog_response_cb (GtkDialog *dialog, gint response, gpointer data)
 {
   FrogrSettingsDialog *self = FROGR_SETTINGS_DIALOG (dialog);
-  FrogrSettingsDialogPrivate *priv = FROGR_SETTINGS_DIALOG_GET_PRIVATE (self);
 
   if (response == GTK_RESPONSE_CLOSE)
     {
@@ -837,20 +811,20 @@ static void _dialog_response_cb (GtkDialog *dialog, gint response, gpointer data
         return;
 
       /* Fetch tags if needed */
-      if (priv->enable_tags_autocompletion)
-        frogr_controller_fetch_tags_if_needed (priv->controller);
+      if (self->enable_tags_autocompletion)
+        frogr_controller_fetch_tags_if_needed (self->controller);
 
       /* Update proxy status */
-      if (priv->use_proxy)
-        frogr_controller_set_proxy (priv->controller,
+      if (self->use_proxy)
+        frogr_controller_set_proxy (self->controller,
                                     FALSE,
-                                    priv->proxy_host, priv->proxy_port,
-                                    priv->proxy_username, priv->proxy_password);
+                                    self->proxy_host, self->proxy_port,
+                                    self->proxy_username, self->proxy_password);
       else
-        frogr_controller_set_proxy (priv->controller, TRUE, NULL, NULL, NULL, NULL);
+        frogr_controller_set_proxy (self->controller, TRUE, NULL, NULL, NULL, NULL);
 
       /* Update dark theme related stuff */
-      frogr_controller_set_use_dark_theme (priv->controller, priv->use_dark_theme);
+      frogr_controller_set_use_dark_theme (self->controller, self->use_dark_theme);
     }
 
   gtk_widget_hide (GTK_WIDGET (self));
@@ -859,18 +833,18 @@ static void _dialog_response_cb (GtkDialog *dialog, gint response, gpointer data
 static void
 _frogr_settings_dialog_dispose (GObject *object)
 {
-  FrogrSettingsDialogPrivate *priv = FROGR_SETTINGS_DIALOG_GET_PRIVATE (object);
+  FrogrSettingsDialog *self = FROGR_SETTINGS_DIALOG (object);
 
-  if (priv->controller)
+  if (self->controller)
     {
-      g_object_unref (priv->controller);
-      priv->controller = NULL;
+      g_object_unref (self->controller);
+      self->controller = NULL;
     }
 
-  if (priv->config)
+  if (self->config)
     {
-      g_object_unref (priv->config);
-      priv->config = NULL;
+      g_object_unref (self->config);
+      self->config = NULL;
     }
 
   G_OBJECT_CLASS(frogr_settings_dialog_parent_class)->dispose (object);
@@ -879,11 +853,11 @@ _frogr_settings_dialog_dispose (GObject *object)
 static void
 _frogr_settings_dialog_finalize (GObject *object)
 {
-  FrogrSettingsDialogPrivate *priv = FROGR_SETTINGS_DIALOG_GET_PRIVATE (object);
-  g_free (priv->proxy_host);
-  g_free (priv->proxy_port);
-  g_free (priv->proxy_username);
-  g_free (priv->proxy_password);
+  FrogrSettingsDialog *self = FROGR_SETTINGS_DIALOG (object);
+  g_free (self->proxy_host);
+  g_free (self->proxy_port);
+  g_free (self->proxy_username);
+  g_free (self->proxy_password);
   G_OBJECT_CLASS(frogr_settings_dialog_parent_class)->finalize (object);
 }
 
@@ -894,67 +868,62 @@ frogr_settings_dialog_class_init (FrogrSettingsDialogClass *klass)
 
   obj_class->dispose = _frogr_settings_dialog_dispose;
   obj_class->finalize = _frogr_settings_dialog_finalize;
-
-  g_type_class_add_private (obj_class, sizeof (FrogrSettingsDialogPrivate));
 }
 
 static void
 frogr_settings_dialog_init (FrogrSettingsDialog *self)
 {
-  FrogrSettingsDialogPrivate *priv = NULL;
   GtkWidget *vbox = NULL;
   GtkNotebook *notebook = NULL;
 
-  priv = FROGR_SETTINGS_DIALOG_GET_PRIVATE (self);
-
-  priv->controller = g_object_ref (frogr_controller_get_instance ());
-  priv->config = g_object_ref (frogr_config_get_instance ());
-
-  priv->public_rb = NULL;
-  priv->private_rb = NULL;
-  priv->friend_cb = NULL;
-  priv->family_cb = NULL;
-  priv->show_in_search_cb = NULL;
-  priv->send_geolocation_data_cb = NULL;
-  priv->replace_date_posted_cb = NULL;
-  priv->license_cb = NULL;
-  priv->photo_content_rb = NULL;
-  priv->sshot_content_rb = NULL;
-  priv->other_content_rb = NULL;
-  priv->safe_rb = NULL;
-  priv->moderate_rb = NULL;
-  priv->restricted_rb = NULL;
-  priv->enable_tags_autocompletion_cb = NULL;
-  priv->keep_file_extensions_cb = NULL;
-  priv->import_tags_cb = NULL;
-  priv->use_dark_theme_cb = NULL;
-  priv->use_proxy_cb = NULL;
-  priv->proxy_host_label = NULL;
-  priv->proxy_host_entry = NULL;
-  priv->proxy_port_label = NULL;
-  priv->proxy_port_entry = NULL;
-  priv->proxy_username_label = NULL;
-  priv->proxy_username_entry = NULL;
-  priv->proxy_password_label = NULL;
-  priv->proxy_password_entry = NULL;
-  priv->public_visibility = FALSE;
-  priv->family_visibility = FALSE;
-  priv->friend_visibility = FALSE;
-  priv->show_in_search = FALSE;
-  priv->send_geolocation_data = FALSE;
-  priv->replace_date_posted = TRUE;
-  priv->license = FSP_LICENSE_NONE;
-  priv->safety_level = FSP_SAFETY_LEVEL_NONE;
-  priv->content_type = FSP_CONTENT_TYPE_NONE;
-  priv->enable_tags_autocompletion = TRUE;
-  priv->keep_file_extensions = FALSE;
-  priv->import_tags = TRUE;
-  priv->use_dark_theme = TRUE;
-  priv->use_proxy = FALSE;
-  priv->proxy_host = NULL;
-  priv->proxy_port = NULL;
-  priv->proxy_username = NULL;
-  priv->proxy_password = NULL;
+  self->controller = g_object_ref (frogr_controller_get_instance ());
+  self->config = g_object_ref (frogr_config_get_instance ());
+
+  self->public_rb = NULL;
+  self->private_rb = NULL;
+  self->friend_cb = NULL;
+  self->family_cb = NULL;
+  self->show_in_search_cb = NULL;
+  self->send_geolocation_data_cb = NULL;
+  self->replace_date_posted_cb = NULL;
+  self->license_cb = NULL;
+  self->photo_content_rb = NULL;
+  self->sshot_content_rb = NULL;
+  self->other_content_rb = NULL;
+  self->safe_rb = NULL;
+  self->moderate_rb = NULL;
+  self->restricted_rb = NULL;
+  self->enable_tags_autocompletion_cb = NULL;
+  self->keep_file_extensions_cb = NULL;
+  self->import_tags_cb = NULL;
+  self->use_dark_theme_cb = NULL;
+  self->use_proxy_cb = NULL;
+  self->proxy_host_label = NULL;
+  self->proxy_host_entry = NULL;
+  self->proxy_port_label = NULL;
+  self->proxy_port_entry = NULL;
+  self->proxy_username_label = NULL;
+  self->proxy_username_entry = NULL;
+  self->proxy_password_label = NULL;
+  self->proxy_password_entry = NULL;
+  self->public_visibility = FALSE;
+  self->family_visibility = FALSE;
+  self->friend_visibility = FALSE;
+  self->show_in_search = FALSE;
+  self->send_geolocation_data = FALSE;
+  self->replace_date_posted = TRUE;
+  self->license = FSP_LICENSE_NONE;
+  self->safety_level = FSP_SAFETY_LEVEL_NONE;
+  self->content_type = FSP_CONTENT_TYPE_NONE;
+  self->enable_tags_autocompletion = TRUE;
+  self->keep_file_extensions = FALSE;
+  self->import_tags = TRUE;
+  self->use_dark_theme = TRUE;
+  self->use_proxy = FALSE;
+  self->proxy_host = NULL;
+  self->proxy_port = NULL;
+  self->proxy_username = NULL;
+  self->proxy_password = NULL;
 
   /* Create widgets */
   gtk_dialog_add_buttons (GTK_DIALOG (self),
diff --git a/src/frogr-settings-dialog.h b/src/frogr-settings-dialog.h
index f6d446a..e0b38ea 100644
--- a/src/frogr-settings-dialog.h
+++ b/src/frogr-settings-dialog.h
@@ -25,27 +25,9 @@
 
 G_BEGIN_DECLS
 
-#define FROGR_TYPE_SETTINGS_DIALOG           (frogr_settings_dialog_get_type())
-#define FROGR_SETTINGS_DIALOG(obj)           (G_TYPE_CHECK_INSTANCE_CAST(obj, FROGR_TYPE_SETTINGS_DIALOG, 
FrogrSettingsDialog))
-#define FROGR_SETTINGS_DIALOG_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST(klass, FROGR_TYPE_SETTINGS_DIALOG, 
FrogrSettingsDialogClass))
-#define FROGR_IS_SETTINGS_DIALOG(obj)           (G_TYPE_CHECK_INSTANCE_TYPE(obj, FROGR_TYPE_SETTINGS_DIALOG))
-#define FROGR_IS_SETTINGS_DIALOG_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE((klass), 
FROGR_TYPE_SETTINGS_DIALOG))
-#define FROGR_SETTINGS_DIALOG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FROGR_TYPE_SETTINGS_DIALOG, 
FrogrSettingsDialogClass))
-
-typedef struct _FrogrSettingsDialog        FrogrSettingsDialog;
-typedef struct _FrogrSettingsDialogClass   FrogrSettingsDialogClass;
-
-struct _FrogrSettingsDialogClass
-{
-  GtkDialogClass parent_class;
-};
-
-struct _FrogrSettingsDialog
-{
-  GtkDialog parent;
-};
-
-GType frogr_settings_dialog_get_type (void) G_GNUC_CONST;
+#define FROGR_TYPE_SETTINGS_DIALOG (frogr_settings_dialog_get_type())
+
+G_DECLARE_FINAL_TYPE (FrogrSettingsDialog, frogr_settings_dialog, FROGR, SETTINGS_DIALOG, GtkDialog)
 
 void frogr_settings_dialog_show (GtkWindow *parent);
 


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