diff --git a/.gitignore b/.gitignore
index bb07aac..43657d5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -24,5 +24,6 @@
 *.db
 *.old
 .*
+t/kalamar_user_client.t
 !.gitignore
 npm-debug.log
\ No newline at end of file
diff --git a/kalamar.conf b/kalamar.conf
index 1e9cf45..f48fece 100644
--- a/kalamar.conf
+++ b/kalamar.conf
@@ -4,13 +4,27 @@
     # IDS Kustvakt server:
     # api => 'http://10.0.10.13:7070/api/v0.1/'
     # Local Kustvakt server:
+    # api => 'http://10.0.10.51:7070/api/v0.1/'
     api => 'http://localhost:9999/api/v0.1/'
   },
   CHI => {
     default => {
       driver => 'FastMmap',
       root_dir => app->home . '/cache/data',
-      cache_size => '12m'
+      cache_size => '100m',
+      max_size => '100m'
+    },
+    user => {
+      l1_cache => {
+	driver => 'FastMmap',
+	root_dir => app->home . '/cache/usermap',
+	cache_size => '50m',
+	max_size => '50m'
+      },
+      driver => 'File',
+      root_dir => app->home . '/cache/userfile',
+      max_key_length => 64,
+      max_size => '500m'
     }
   },
   hypnotoad => {
diff --git a/lib/Kalamar/Plugin/KalamarUser.pm b/lib/Kalamar/Plugin/KalamarUser.pm
index a9ea947..a7d13bb 100644
--- a/lib/Kalamar/Plugin/KalamarUser.pm
+++ b/lib/Kalamar/Plugin/KalamarUser.pm
@@ -3,6 +3,7 @@
 use Mojo::ByteStream 'b';
 
 has 'api';
+has 'ua';
 
 sub register {
   my ($plugin, $mojo, $param) = @_;
@@ -14,6 +15,7 @@
 
   # Set API!
   $plugin->api($param->{api}) or return;
+  $plugin->ua(Mojo::UserAgent->new);
 
   # Get the user token necessary for authorization
   $mojo->helper(
@@ -36,7 +38,7 @@
       my $c = shift;
       my ($user, $pwd) = @_;
 
-      return if index($user, ':') >= 0;
+      return if (index($user, ':') >= 0);
 
       my $url = Mojo::URL->new($plugin->api)->path('auth/apiToken');
       my $tx = $c->ua->get($url => {
@@ -75,7 +77,7 @@
       my $c = shift;
       my $param = shift;
 
-      return unless $param =~ m/^details$/;
+      return unless $param =~ m/^details|settings$/;
 
       # The user may be logged in
       my $auth = ($c->stash('auth') || $c->session('auth')) or return;
@@ -90,7 +92,18 @@
       my $value = $chi->get($user . '_' . $param);
 
       unless ($value) {
-	$value = $plugin->get_authorized($auth, 'user/' . $param) or return;
+
+	my $tx = $plugin->build_authorized_tx($auth, 'GET', 'user/' . $param);
+	$tx = $plugin->ua->start($tx);
+	unless ($value = $tx->success) {
+#	  warn $tx->code;
+	  return;
+	}
+#	else {
+#	  warn $c->dumper($value->json);
+#	};
+	$value = $value->json;
+
 	$chi->set($user . '_' . $param => $value);
       };
 
@@ -118,21 +131,25 @@
   );
 };
 
-
-# Issue an authorized request
-sub get_authorized {
+sub build_authorized_tx {
   my $plugin = shift;
 
-  my ($auth, $path) = @_;
+  my $ua = $plugin->ua;
+  my ($auth, $method, $path, @values) = @_;
+
+  my $header;
+  if (@values && ref $values[0] eq 'HASH') {
+    $header = shift @values;
+  }
+  else {
+    $header = {};
+  };
+
   my $url = Mojo::URL->new($plugin->api)->path($path);
 
-  # Get authorized
-  # TODO: REUSE USERAGENT
-  my $tx = Mojo::UserAgent->new->get($url => {
-    Authorization => $auth
-  });
+  $header->{Authorization} = $auth;
 
-  return $tx->success ? $tx->success->json : undef;
+  return $ua->build_tx($method, $url => $header => @values);
 };
 
 
@@ -140,3 +157,11 @@
 
 
 __END__
+
+# Failure
+entity {
+  "errors":[
+    [204,"authentication token is expired","eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ0ZXN0MSIsImlzcyI6Imh0dHA6IiwiZXhwIjoxNDUyOTY2NzAxOTYxfQ.W_rJjJ8i82Srw7MiSPRGeIBLE-rMPmSPK9BA7Dt_7Yc"]
+  ]
+}
+
