diff --git a/bin/access-check-manager.pl.in b/bin/access-check-manager.pl.in
index 33cc36340065f52e84b00820a12dc749febb76a4..7266172660920a76304c1430af879da328027b68 100755
--- a/bin/access-check-manager.pl.in
+++ b/bin/access-check-manager.pl.in
@@ -14,12 +14,9 @@ use Log::Any::Adapter;
 use Pod::Usage;
 
 use AccountManager::Account;
-use AccountManager::Account::Manager;
 use AccountManager::Metadata;
 use AccountManager::ServiceProvider;
-use AccountManager::ServiceProvider::Manager;
 use AccountManager::Token;
-use AccountManager::Token::Manager;
 use AccountManager::Tools;
 
 my %options;
@@ -130,7 +127,7 @@ sub list_accounts {
     }
 
     my $accounts =
-        AccountManager::Account::Manager->get_accounts(db => $db, %args);
+        AccountManager::Account->get_accounts(db => $db, %args);
 
     if (! @$accounts) {
         printf "No matching test account in DB\n";
@@ -146,7 +143,7 @@ sub list_accounts {
         }
         printf "%d accounts removed\n", scalar @$accounts;
 
-        $accounts = AccountManager::Account::Manager->get_accounts(
+        $accounts = AccountManager::Account->get_accounts(
             db => $db
         );
 
@@ -226,7 +223,7 @@ sub add_service {
 sub list_services {
     my %args;
 
-    my $providers = AccountManager::ServiceProvider::Manager->get_service_providers(db => $db, %args);
+    my $providers = AccountManager::ServiceProvider->get_service_providers(db => $db, %args);
 
     if (! @$providers) {
         printf "No service provider in DB\n";
@@ -257,8 +254,7 @@ sub list_tokens {
         push @{ $args{query} }, expiration_date => { lt => DateTime->now() };
     }
 
-    my $tokens =
-      AccountManager::Token::Manager->get_tokens(db => $db, %args);
+    my $tokens = AccountManager::Token->get_tokens(db => $db, %args);
 
     if (!@$tokens) {
         printf "No corresponding token found in DB\n";
@@ -285,8 +281,7 @@ sub get_token {
         $args{token} = $options{token};
     }
 
-    my $token =
-      AccountManager::Token->new(db => $db, %args);
+    my $token = AccountManager::Token->new(db => $db, %args);
 
     die "No corresponding token found in DB\n"
         unless $token->load();
diff --git a/lib/AccountManager/Account.pm b/lib/AccountManager/Account.pm
index 61e05d716d1359263ee47d955e567c4544b3e49f..3b84a9b4e4a6341e159d42ee788a6f64b0f3f67e 100644
--- a/lib/AccountManager/Account.pm
+++ b/lib/AccountManager/Account.pm
@@ -6,6 +6,8 @@ use warnings;
 
 use base 'AccountManager::DB::Object';
 
+use Rose::DB::Object::Manager;
+
 __PACKAGE__->meta->setup(
     table   => 'accounts',
 
@@ -25,6 +27,8 @@ __PACKAGE__->meta->setup(
     primary_key_columns => [ 'id' ],
 );
 
+Rose::DB::Object::Manager->make_manager_methods('accounts');
+
 my %cn = (
     alumni1        => 'Åsold Wahlstrøm - eduGAIN Access Check account',
     employee1      => 'Linnéa Hsu - eduGAIN Access Check account',
diff --git a/lib/AccountManager/Account/Manager.pm b/lib/AccountManager/Account/Manager.pm
deleted file mode 100644
index 66121147a1a18cb232d0fe754573f7301c163a0e..0000000000000000000000000000000000000000
--- a/lib/AccountManager/Account/Manager.pm
+++ /dev/null
@@ -1,15 +0,0 @@
-package AccountManager::Account::Manager;
-
-use strict;
-use warnings;
-
-use base qw(Rose::DB::Object::Manager);
-
-use AccountManager::Account;
-
-sub object_class { 'AccountManager::Account' }
-
-__PACKAGE__->make_manager_methods('accounts');
-
-1;
-
diff --git a/lib/AccountManager/App.pm b/lib/AccountManager/App.pm
index 5409539c22fabaad0721e870209e0458c57f563e..b805e5e66c8b5dcdc18a9a8d8b10224d5e49edb6 100644
--- a/lib/AccountManager/App.pm
+++ b/lib/AccountManager/App.pm
@@ -11,7 +11,6 @@ use Template;
 use Template::Constants qw(:chomp);
 
 use AccountManager::Account;
-use AccountManager::Account::Manager;
 use AccountManager::Metadata;
 use AccountManager::ServiceProvider;
 use AccountManager::Token;
@@ -660,9 +659,7 @@ sub req_create_accounts {
     ) if !@accounts;
 
     ## Update simpleSAMLphp configuration to enable test accounts
-    my $accounts = AccountManager::Account::Manager->get_accounts(
-        db => $self->{db}
-    );
+    my $accounts = AccountManager::Account->get_accounts(db => $self->{db});
 
     eval {
         AccountManager::Tools::update_ssp_authsources(
@@ -756,7 +753,7 @@ sub req_download_accounts {
     }
 
     # load accounts from database
-    my $accounts = AccountManager::Account::Manager->get_accounts(
+    my $accounts = AccountManager::Account->get_accounts(
         db    => $self->{db},
         query => [
             token => $self->{in}->{token}
diff --git a/lib/AccountManager/ServiceProvider.pm b/lib/AccountManager/ServiceProvider.pm
index fb2c8d70c5881e322daa3eb41df85c2b8a77b99b..8d83daa4c486fd2a9e3cc77dd4aa530f5acc295c 100644
--- a/lib/AccountManager/ServiceProvider.pm
+++ b/lib/AccountManager/ServiceProvider.pm
@@ -6,6 +6,7 @@ use warnings;
 use base 'AccountManager::DB::Object';
 
 use List::MoreUtils qw(any);
+use Rose::DB::Object::Manager;
 
 __PACKAGE__->meta->setup(
     table   => 'services',
@@ -22,6 +23,8 @@ __PACKAGE__->meta->setup(
     unique_key => [ 'entityid' ],
 );
 
+Rose::DB::Object::Manager->make_manager_methods('service_providers');
+
 sub print {
     my ($self, $fd) = @_;
     $fd = \*STDOUT unless $fd;
diff --git a/lib/AccountManager/ServiceProvider/Manager.pm b/lib/AccountManager/ServiceProvider/Manager.pm
deleted file mode 100644
index 3177a9b01abe7775c1dac482075a97806f01a9a7..0000000000000000000000000000000000000000
--- a/lib/AccountManager/ServiceProvider/Manager.pm
+++ /dev/null
@@ -1,15 +0,0 @@
-package AccountManager::ServiceProvider::Manager;
-
-use strict;
-use warnings;
-
-use base qw(Rose::DB::Object::Manager);
-
-use AccountManager::ServiceProvider;
-
-sub object_class { 'AccountManager::ServiceProvider' }
-
-__PACKAGE__->make_manager_methods('service_providers');
-
-1;
-
diff --git a/lib/AccountManager/Token.pm b/lib/AccountManager/Token.pm
index 5e4a944e8f5fe6b141254964d767273854f31c37..a7427c4fea2f6f955a98266d7774c9f1fb6375c2 100644
--- a/lib/AccountManager/Token.pm
+++ b/lib/AccountManager/Token.pm
@@ -5,6 +5,8 @@ use warnings;
 
 use base 'AccountManager::DB::Object';
 
+use Rose::DB::Object::Manager;
+
 __PACKAGE__->meta->setup(
     table   => 'tokens',
 
@@ -25,6 +27,8 @@ __PACKAGE__->meta->setup(
     ],
 );
 
+Rose::DB::Object::Manager->make_manager_methods('tokens');
+
 sub print {
     my ($self, $fd) = @_;
     $fd = \*STDOUT unless $fd;
diff --git a/lib/AccountManager/Token/Manager.pm b/lib/AccountManager/Token/Manager.pm
deleted file mode 100644
index b9930ca83f43b2081bea4fec0b85ef53a19608a7..0000000000000000000000000000000000000000
--- a/lib/AccountManager/Token/Manager.pm
+++ /dev/null
@@ -1,15 +0,0 @@
-package AccountManager::Token::Manager;
-
-use strict;
-use warnings;
-
-use base qw(Rose::DB::Object::Manager);
-
-use AccountManager::Token;
-
-sub object_class { 'AccountManager::Token' }
-
-__PACKAGE__->make_manager_methods('tokens');
-
-1;
-
diff --git a/lib/Makefile.am b/lib/Makefile.am
index 84e581bcfb51ccf1b0fe2685f4c2d6f2d81f8292..3fb5a3500f1c5d96ca94cf210fbc9af160848dfc 100644
--- a/lib/Makefile.am
+++ b/lib/Makefile.am
@@ -2,14 +2,11 @@ modulesdir = $(datadir)/access-check/lib
 
 nobase_modules_DATA = \
 	AccountManager/Token.pm \
-	AccountManager/Token/Manager.pm \
 	AccountManager/DB.pm \
 	AccountManager/DB/Object.pm \
 	AccountManager/Metadata.pm \
 	AccountManager/ServiceProvider.pm \
-	AccountManager/ServiceProvider/Manager.pm \
 	AccountManager/Account.pm \
-	AccountManager/Account/Manager.pm \
 	AccountManager/Tools.pm \
 	AccountManager/L10N.pm \
 	AccountManager/L10N/en.pm \