diff --git a/src/main/java/io/kamax/mxisd/as/AppSvcManager.java b/src/main/java/io/kamax/mxisd/as/AppSvcManager.java
index 6d6260f..fd55223 100644
--- a/src/main/java/io/kamax/mxisd/as/AppSvcManager.java
+++ b/src/main/java/io/kamax/mxisd/as/AppSvcManager.java
@@ -27,8 +27,9 @@ import io.kamax.matrix.client.MatrixClientContext;
import io.kamax.matrix.client.as.MatrixApplicationServiceClient;
import io.kamax.matrix.event.EventKey;
import io.kamax.matrix.json.GsonUtil;
-import io.kamax.mxisd.as.processor.MembershipEventProcessor;
-import io.kamax.mxisd.as.processor.MessageEventProcessor;
+import io.kamax.mxisd.as.processor.event.MembershipEventProcessor;
+import io.kamax.mxisd.as.processor.event.MessageEventProcessor;
+import io.kamax.mxisd.as.registration.SynapseRegistrationYaml;
import io.kamax.mxisd.backend.sql.synapse.Synapse;
import io.kamax.mxisd.config.AppServiceConfig;
import io.kamax.mxisd.config.MxisdConfig;
diff --git a/src/main/java/io/kamax/mxisd/as/processor/MembershipEventProcessor.java b/src/main/java/io/kamax/mxisd/as/processor/event/MembershipEventProcessor.java
similarity index 98%
rename from src/main/java/io/kamax/mxisd/as/processor/MembershipEventProcessor.java
rename to src/main/java/io/kamax/mxisd/as/processor/event/MembershipEventProcessor.java
index 009611a..f14bc28 100644
--- a/src/main/java/io/kamax/mxisd/as/processor/MembershipEventProcessor.java
+++ b/src/main/java/io/kamax/mxisd/as/processor/event/MembershipEventProcessor.java
@@ -18,7 +18,7 @@
* along with this program. If not, see .
*/
-package io.kamax.mxisd.as.processor;
+package io.kamax.mxisd.as.processor.event;
import com.google.gson.JsonObject;
import io.kamax.matrix.MatrixID;
@@ -29,10 +29,10 @@ import io.kamax.matrix.client.as.MatrixApplicationServiceClient;
import io.kamax.matrix.event.EventKey;
import io.kamax.matrix.hs._MatrixRoom;
import io.kamax.mxisd.as.EventTypeProcessor;
-import io.kamax.mxisd.as.IMatrixIdInvite;
-import io.kamax.mxisd.as.MatrixIdInvite;
import io.kamax.mxisd.backend.sql.synapse.Synapse;
import io.kamax.mxisd.config.MxisdConfig;
+import io.kamax.mxisd.invitation.IMatrixIdInvite;
+import io.kamax.mxisd.invitation.MatrixIdInvite;
import io.kamax.mxisd.notification.NotificationManager;
import io.kamax.mxisd.profile.ProfileManager;
import org.apache.commons.lang.StringUtils;
diff --git a/src/main/java/io/kamax/mxisd/as/processor/MessageEventProcessor.java b/src/main/java/io/kamax/mxisd/as/processor/event/MessageEventProcessor.java
similarity index 98%
rename from src/main/java/io/kamax/mxisd/as/processor/MessageEventProcessor.java
rename to src/main/java/io/kamax/mxisd/as/processor/event/MessageEventProcessor.java
index 8053943..4253728 100644
--- a/src/main/java/io/kamax/mxisd/as/processor/MessageEventProcessor.java
+++ b/src/main/java/io/kamax/mxisd/as/processor/event/MessageEventProcessor.java
@@ -18,7 +18,7 @@
* along with this program. If not, see .
*/
-package io.kamax.mxisd.as.processor;
+package io.kamax.mxisd.as.processor.event;
import com.google.gson.JsonObject;
import io.kamax.matrix._MatrixID;
diff --git a/src/main/java/io/kamax/mxisd/as/SynapseRegistrationYaml.java b/src/main/java/io/kamax/mxisd/as/registration/SynapseRegistrationYaml.java
similarity index 99%
rename from src/main/java/io/kamax/mxisd/as/SynapseRegistrationYaml.java
rename to src/main/java/io/kamax/mxisd/as/registration/SynapseRegistrationYaml.java
index 5ab3988..167333b 100644
--- a/src/main/java/io/kamax/mxisd/as/SynapseRegistrationYaml.java
+++ b/src/main/java/io/kamax/mxisd/as/registration/SynapseRegistrationYaml.java
@@ -18,7 +18,7 @@
* along with this program. If not, see .
*/
-package io.kamax.mxisd.as;
+package io.kamax.mxisd.as.registration;
import io.kamax.mxisd.config.AppServiceConfig;
diff --git a/src/main/java/io/kamax/mxisd/as/IMatrixIdInvite.java b/src/main/java/io/kamax/mxisd/invitation/IMatrixIdInvite.java
similarity index 92%
rename from src/main/java/io/kamax/mxisd/as/IMatrixIdInvite.java
rename to src/main/java/io/kamax/mxisd/invitation/IMatrixIdInvite.java
index 626025d..91e19aa 100644
--- a/src/main/java/io/kamax/mxisd/as/IMatrixIdInvite.java
+++ b/src/main/java/io/kamax/mxisd/invitation/IMatrixIdInvite.java
@@ -18,10 +18,9 @@
* along with this program. If not, see .
*/
-package io.kamax.mxisd.as;
+package io.kamax.mxisd.invitation;
import io.kamax.matrix._MatrixID;
-import io.kamax.mxisd.invitation.IThreePidInvite;
public interface IMatrixIdInvite extends IThreePidInvite {
diff --git a/src/main/java/io/kamax/mxisd/as/MatrixIdInvite.java b/src/main/java/io/kamax/mxisd/invitation/MatrixIdInvite.java
similarity index 98%
rename from src/main/java/io/kamax/mxisd/as/MatrixIdInvite.java
rename to src/main/java/io/kamax/mxisd/invitation/MatrixIdInvite.java
index 1c9d630..1e36ea7 100644
--- a/src/main/java/io/kamax/mxisd/as/MatrixIdInvite.java
+++ b/src/main/java/io/kamax/mxisd/invitation/MatrixIdInvite.java
@@ -18,7 +18,7 @@
* along with this program. If not, see .
*/
-package io.kamax.mxisd.as;
+package io.kamax.mxisd.invitation;
import io.kamax.matrix._MatrixID;
diff --git a/src/main/java/io/kamax/mxisd/notification/NotificationHandler.java b/src/main/java/io/kamax/mxisd/notification/NotificationHandler.java
index 07056e5..b6c5ba2 100644
--- a/src/main/java/io/kamax/mxisd/notification/NotificationHandler.java
+++ b/src/main/java/io/kamax/mxisd/notification/NotificationHandler.java
@@ -21,7 +21,7 @@
package io.kamax.mxisd.notification;
import io.kamax.matrix.ThreePid;
-import io.kamax.mxisd.as.IMatrixIdInvite;
+import io.kamax.mxisd.invitation.IMatrixIdInvite;
import io.kamax.mxisd.invitation.IThreePidInviteReply;
import io.kamax.mxisd.threepid.session.IThreePidSession;
diff --git a/src/main/java/io/kamax/mxisd/notification/NotificationManager.java b/src/main/java/io/kamax/mxisd/notification/NotificationManager.java
index 22a8e57..33eea8c 100644
--- a/src/main/java/io/kamax/mxisd/notification/NotificationManager.java
+++ b/src/main/java/io/kamax/mxisd/notification/NotificationManager.java
@@ -21,9 +21,9 @@
package io.kamax.mxisd.notification;
import io.kamax.matrix.ThreePid;
-import io.kamax.mxisd.as.IMatrixIdInvite;
import io.kamax.mxisd.config.threepid.notification.NotificationConfig;
import io.kamax.mxisd.exception.NotImplementedException;
+import io.kamax.mxisd.invitation.IMatrixIdInvite;
import io.kamax.mxisd.invitation.IThreePidInviteReply;
import io.kamax.mxisd.threepid.session.IThreePidSession;
import org.apache.commons.lang.StringUtils;
diff --git a/src/main/java/io/kamax/mxisd/threepid/generator/GenericTemplateNotificationGenerator.java b/src/main/java/io/kamax/mxisd/threepid/generator/GenericTemplateNotificationGenerator.java
index ad35ddd..fb5a363 100644
--- a/src/main/java/io/kamax/mxisd/threepid/generator/GenericTemplateNotificationGenerator.java
+++ b/src/main/java/io/kamax/mxisd/threepid/generator/GenericTemplateNotificationGenerator.java
@@ -21,11 +21,11 @@
package io.kamax.mxisd.threepid.generator;
import io.kamax.matrix.ThreePid;
-import io.kamax.mxisd.as.IMatrixIdInvite;
import io.kamax.mxisd.config.MatrixConfig;
import io.kamax.mxisd.config.ServerConfig;
import io.kamax.mxisd.config.threepid.medium.GenericTemplateConfig;
import io.kamax.mxisd.exception.InternalServerError;
+import io.kamax.mxisd.invitation.IMatrixIdInvite;
import io.kamax.mxisd.invitation.IThreePidInviteReply;
import io.kamax.mxisd.threepid.session.IThreePidSession;
import io.kamax.mxisd.util.FileUtil;
diff --git a/src/main/java/io/kamax/mxisd/threepid/generator/NotificationGenerator.java b/src/main/java/io/kamax/mxisd/threepid/generator/NotificationGenerator.java
index eb5f49d..aeb85f1 100644
--- a/src/main/java/io/kamax/mxisd/threepid/generator/NotificationGenerator.java
+++ b/src/main/java/io/kamax/mxisd/threepid/generator/NotificationGenerator.java
@@ -21,7 +21,7 @@
package io.kamax.mxisd.threepid.generator;
import io.kamax.matrix.ThreePid;
-import io.kamax.mxisd.as.IMatrixIdInvite;
+import io.kamax.mxisd.invitation.IMatrixIdInvite;
import io.kamax.mxisd.invitation.IThreePidInviteReply;
import io.kamax.mxisd.threepid.session.IThreePidSession;
diff --git a/src/main/java/io/kamax/mxisd/threepid/generator/PlaceholderNotificationGenerator.java b/src/main/java/io/kamax/mxisd/threepid/generator/PlaceholderNotificationGenerator.java
index 34d6e05..c1fccf6 100644
--- a/src/main/java/io/kamax/mxisd/threepid/generator/PlaceholderNotificationGenerator.java
+++ b/src/main/java/io/kamax/mxisd/threepid/generator/PlaceholderNotificationGenerator.java
@@ -21,10 +21,10 @@
package io.kamax.mxisd.threepid.generator;
import io.kamax.matrix.ThreePid;
-import io.kamax.mxisd.as.IMatrixIdInvite;
import io.kamax.mxisd.config.MatrixConfig;
import io.kamax.mxisd.config.ServerConfig;
import io.kamax.mxisd.http.IsAPIv1;
+import io.kamax.mxisd.invitation.IMatrixIdInvite;
import io.kamax.mxisd.invitation.IThreePidInviteReply;
import io.kamax.mxisd.threepid.session.IThreePidSession;
import org.apache.commons.lang.StringUtils;
diff --git a/src/main/java/io/kamax/mxisd/threepid/notification/GenericNotificationHandler.java b/src/main/java/io/kamax/mxisd/threepid/notification/GenericNotificationHandler.java
index b6992a0..cd77907 100644
--- a/src/main/java/io/kamax/mxisd/threepid/notification/GenericNotificationHandler.java
+++ b/src/main/java/io/kamax/mxisd/threepid/notification/GenericNotificationHandler.java
@@ -21,8 +21,8 @@
package io.kamax.mxisd.threepid.notification;
import io.kamax.matrix.ThreePid;
-import io.kamax.mxisd.as.IMatrixIdInvite;
import io.kamax.mxisd.exception.ConfigurationException;
+import io.kamax.mxisd.invitation.IMatrixIdInvite;
import io.kamax.mxisd.invitation.IThreePidInviteReply;
import io.kamax.mxisd.notification.NotificationHandler;
import io.kamax.mxisd.threepid.connector.ThreePidConnector;
diff --git a/src/main/java/io/kamax/mxisd/threepid/notification/email/EmailSendGridNotificationHandler.java b/src/main/java/io/kamax/mxisd/threepid/notification/email/EmailSendGridNotificationHandler.java
index 93b19a3..ce8760c 100644
--- a/src/main/java/io/kamax/mxisd/threepid/notification/email/EmailSendGridNotificationHandler.java
+++ b/src/main/java/io/kamax/mxisd/threepid/notification/email/EmailSendGridNotificationHandler.java
@@ -24,10 +24,10 @@ import com.sendgrid.SendGrid;
import com.sendgrid.SendGridException;
import io.kamax.matrix.ThreePid;
import io.kamax.matrix.ThreePidMedium;
-import io.kamax.mxisd.as.IMatrixIdInvite;
import io.kamax.mxisd.config.MxisdConfig;
import io.kamax.mxisd.config.threepid.connector.EmailSendGridConfig;
import io.kamax.mxisd.exception.FeatureNotAvailable;
+import io.kamax.mxisd.invitation.IMatrixIdInvite;
import io.kamax.mxisd.invitation.IThreePidInviteReply;
import io.kamax.mxisd.notification.NotificationHandler;
import io.kamax.mxisd.threepid.generator.PlaceholderNotificationGenerator;
diff --git a/src/test/java/io/kamax/mxisd/test/notification/EmailNotificationTest.java b/src/test/java/io/kamax/mxisd/test/notification/EmailNotificationTest.java
index 924b010..f4677d9 100644
--- a/src/test/java/io/kamax/mxisd/test/notification/EmailNotificationTest.java
+++ b/src/test/java/io/kamax/mxisd/test/notification/EmailNotificationTest.java
@@ -28,10 +28,10 @@ import io.kamax.matrix.ThreePidMedium;
import io.kamax.matrix._MatrixID;
import io.kamax.matrix.json.GsonUtil;
import io.kamax.mxisd.Mxisd;
-import io.kamax.mxisd.as.MatrixIdInvite;
import io.kamax.mxisd.config.MxisdConfig;
import io.kamax.mxisd.config.threepid.connector.EmailSmtpConfig;
import io.kamax.mxisd.config.threepid.medium.EmailConfig;
+import io.kamax.mxisd.invitation.MatrixIdInvite;
import io.kamax.mxisd.threepid.connector.email.EmailSmtpConnector;
import io.kamax.mxisd.threepid.session.ThreePidSession;
import org.apache.commons.lang.RandomStringUtils;