diff --git a/phpcs.xml.dist b/phpcs.xml.dist
index f6c19f2..dde9bb4 100644
--- a/phpcs.xml.dist
+++ b/phpcs.xml.dist
@@ -18,5 +18,5 @@
*/node_modules/*
*/vendor/*
- */classes/class-wp-oauth.php
+ */services/x/class-wp-oauth.php
\ No newline at end of file
diff --git a/src/classes/class-wpt-bluesky-api.php b/src/services/bluesky/class-wpt-bluesky-api.php
similarity index 100%
rename from src/classes/class-wpt-bluesky-api.php
rename to src/services/bluesky/class-wpt-bluesky-api.php
diff --git a/src/wpt-post-to-bluesky.php b/src/services/bluesky/post.php
similarity index 98%
rename from src/wpt-post-to-bluesky.php
rename to src/services/bluesky/post.php
index 6e0b982..369e976 100644
--- a/src/wpt-post-to-bluesky.php
+++ b/src/services/bluesky/post.php
@@ -13,7 +13,7 @@
exit;
} // Exit if accessed directly.
-require_once plugin_dir_path( __FILE__ ) . 'classes/class-wpt-bluesky-api.php';
+require_once plugin_dir_path( __FILE__ ) . 'class-wpt-bluesky-api.php';
/**
* Upload media to Bluesky API.
diff --git a/src/wp-to-twitter-bluesky.php b/src/services/bluesky/settings.php
similarity index 100%
rename from src/wp-to-twitter-bluesky.php
rename to src/services/bluesky/settings.php
diff --git a/src/classes/class-wpt-mastodon-api.php b/src/services/mastodon/class-wpt-mastodon-api.php
similarity index 100%
rename from src/classes/class-wpt-mastodon-api.php
rename to src/services/mastodon/class-wpt-mastodon-api.php
diff --git a/src/wpt-post-to-mastodon.php b/src/services/mastodon/post.php
similarity index 98%
rename from src/wpt-post-to-mastodon.php
rename to src/services/mastodon/post.php
index c0ffad6..902e04b 100644
--- a/src/wpt-post-to-mastodon.php
+++ b/src/services/mastodon/post.php
@@ -13,7 +13,7 @@
exit;
} // Exit if accessed directly.
-require_once plugin_dir_path( __FILE__ ) . 'classes/class-wpt-mastodon-api.php';
+require_once plugin_dir_path( __FILE__ ) . 'class-wpt-mastodon-api.php';
/**
* Upload media to Mastodon API.
diff --git a/src/wp-to-twitter-mastodon.php b/src/services/mastodon/settings.php
similarity index 100%
rename from src/wp-to-twitter-mastodon.php
rename to src/services/mastodon/settings.php
diff --git a/src/classes/class-tmhoauth.php b/src/services/x/class-tmhoauth.php
similarity index 100%
rename from src/classes/class-tmhoauth.php
rename to src/services/x/class-tmhoauth.php
diff --git a/src/classes/class-wp-oauth.php b/src/services/x/class-wp-oauth.php
similarity index 100%
rename from src/classes/class-wp-oauth.php
rename to src/services/x/class-wp-oauth.php
diff --git a/src/classes/class-wpt-twitteroauth.php b/src/services/x/class-wpt-twitteroauth.php
similarity index 100%
rename from src/classes/class-wpt-twitteroauth.php
rename to src/services/x/class-wpt-twitteroauth.php
diff --git a/src/wpt-post-to-twitter.php b/src/services/x/post.php
similarity index 100%
rename from src/wpt-post-to-twitter.php
rename to src/services/x/post.php
diff --git a/src/wp-to-twitter-x.php b/src/services/x/settings.php
similarity index 99%
rename from src/wp-to-twitter-x.php
rename to src/services/x/settings.php
index 4abe1f6..e4c24c7 100644
--- a/src/wp-to-twitter-x.php
+++ b/src/services/x/settings.php
@@ -106,7 +106,7 @@ function wpt_oauth_connection( $auth = false, $api = '2' ) {
);
$client = new Client( $settings );
} else {
- require_once plugin_dir_path( __FILE__ ) . 'classes/class-wpt-twitteroauth.php';
+ require_once plugin_dir_path( __FILE__ ) . 'class-wpt-twitteroauth.php';
$connection = new Wpt_TwitterOAuth( $ack, $acs, $ot, $ots );
$connection->useragent = get_option( 'blogname' ) . ' ' . home_url();
$client = $connection;
diff --git a/src/wp-to-twitter.php b/src/wp-to-twitter.php
index 59bac2b..3bafd14 100644
--- a/src/wp-to-twitter.php
+++ b/src/wp-to-twitter.php
@@ -64,15 +64,15 @@
require_once plugin_dir_path( __FILE__ ) . 'includes/ajax.php';
require_once plugin_dir_path( __FILE__ ) . 'wpt-functions.php';
// Service post handlers.
-require_once plugin_dir_path( __FILE__ ) . 'wpt-post-to-twitter.php';
-require_once plugin_dir_path( __FILE__ ) . 'wpt-post-to-mastodon.php';
-require_once plugin_dir_path( __FILE__ ) . 'wpt-post-to-bluesky.php';
+require_once plugin_dir_path( __FILE__ ) . 'services/x/post.php';
+require_once plugin_dir_path( __FILE__ ) . 'services/mastodon/post.php';
+require_once plugin_dir_path( __FILE__ ) . 'services/bluesky/post.php';
// URL Shortening.
require_once plugin_dir_path( __FILE__ ) . 'wp-to-twitter-shorteners.php';
// Service settings.
-require_once plugin_dir_path( __FILE__ ) . 'wp-to-twitter-x.php';
-require_once plugin_dir_path( __FILE__ ) . 'wp-to-twitter-mastodon.php';
-require_once plugin_dir_path( __FILE__ ) . 'wp-to-twitter-bluesky.php';
+require_once plugin_dir_path( __FILE__ ) . 'services/x/settings.php';
+require_once plugin_dir_path( __FILE__ ) . 'services/mastodon/settings.php';
+require_once plugin_dir_path( __FILE__ ) . 'services/bluesky/settings.php';
require_once plugin_dir_path( __FILE__ ) . 'wp-to-twitter-manager.php';
// Template generation.
require_once plugin_dir_path( __FILE__ ) . 'wpt-truncate.php';