diff --git a/core/java/test/junit/net/i2p/data/DataTestSuite.java b/core/java/test/junit/net/i2p/data/DataTestSuite.java
index 4624929f84732e305295990ae62e97184a8a6e6d..a3253916f12278c3cda7669aae23cf695276dad3 100644
--- a/core/java/test/junit/net/i2p/data/DataTestSuite.java
+++ b/core/java/test/junit/net/i2p/data/DataTestSuite.java
@@ -23,9 +23,6 @@ public class DataTestSuite {
         suite.addTestSuite(PayloadTest.class);
         suite.addTestSuite(PrivateKeyTest.class);
         suite.addTestSuite(PublicKeyTest.class);
-        suite.addTestSuite(RouterAddressTest.class);
-        suite.addTestSuite(RouterIdentityTest.class);
-        suite.addTestSuite(RouterInfoTest.class);
         suite.addTestSuite(SessionKeyTest.class);
         suite.addTestSuite(SignatureTest.class);
         suite.addTestSuite(SigningPrivateKeyTest.class);
diff --git a/router/java/test/junit/net/i2p/data/i2np/DatabaseStoreMessageTest.java b/router/java/test/junit/net/i2p/data/i2np/DatabaseStoreMessageTest.java
index d937d118b68f4e9d2ebf94b947d85b283994d36e..730c15f9fbc64c696f21c473292f29c73471fff3 100644
--- a/router/java/test/junit/net/i2p/data/i2np/DatabaseStoreMessageTest.java
+++ b/router/java/test/junit/net/i2p/data/i2np/DatabaseStoreMessageTest.java
@@ -13,8 +13,8 @@ import org.junit.Test;
 import net.i2p.I2PAppContext;
 import net.i2p.data.DataFormatException;
 import net.i2p.data.DataStructure;
-import net.i2p.data.RouterInfo;
-import net.i2p.data.RouterInfoTest;
+import net.i2p.data.router.RouterInfo;
+import net.i2p.data.router.RouterInfoTest;
 import net.i2p.data.StructureTest;
 import net.i2p.util.Clock;
 
diff --git a/core/java/test/junit/net/i2p/data/RouterAddressTest.java b/router/java/test/junit/net/i2p/data/router/RouterAddressTest.java
similarity index 96%
rename from core/java/test/junit/net/i2p/data/RouterAddressTest.java
rename to router/java/test/junit/net/i2p/data/router/RouterAddressTest.java
index 15a1e79290da597f46ac8258f407e2de78ddaa5e..090f7f4704a9f98ca49948c8d02bb3abce2d3479 100644
--- a/core/java/test/junit/net/i2p/data/RouterAddressTest.java
+++ b/router/java/test/junit/net/i2p/data/router/RouterAddressTest.java
@@ -1,4 +1,4 @@
-package net.i2p.data;
+package net.i2p.data.router;
 /*
  * free (adj.): unencumbered; not under the control of others
  * Written by jrandom in 2003 and released into the public domain 
@@ -11,6 +11,10 @@ package net.i2p.data;
 import java.io.ByteArrayOutputStream;
 import java.util.Properties;
 
+import net.i2p.data.DataFormatException;
+import net.i2p.data.DataStructure;
+import net.i2p.data.StructureTest;
+
 /**
  * Test harness for loading / storing Hash objects
  *
diff --git a/core/java/test/junit/net/i2p/data/RouterIdentityTest.java b/router/java/test/junit/net/i2p/data/router/RouterIdentityTest.java
similarity index 91%
rename from core/java/test/junit/net/i2p/data/RouterIdentityTest.java
rename to router/java/test/junit/net/i2p/data/router/RouterIdentityTest.java
index e5fdc93e9e8117aa4fe86d8722a712da57a0c47d..9721d5df56102c09f7c99563167823528585ae78 100644
--- a/core/java/test/junit/net/i2p/data/RouterIdentityTest.java
+++ b/router/java/test/junit/net/i2p/data/router/RouterIdentityTest.java
@@ -1,4 +1,4 @@
-package net.i2p.data;
+package net.i2p.data.router;
 /*
  * free (adj.): unencumbered; not under the control of others
  * Written by jrandom in 2003 and released into the public domain 
@@ -10,6 +10,16 @@ package net.i2p.data;
 
 import java.io.ByteArrayOutputStream;
 
+import net.i2p.data.Certificate;
+import net.i2p.data.CertificateTest;
+import net.i2p.data.DataFormatException;
+import net.i2p.data.DataStructure;
+import net.i2p.data.PublicKey;
+import net.i2p.data.PublicKeyTest;
+import net.i2p.data.SigningPublicKey;
+import net.i2p.data.SigningPublicKeyTest;
+import net.i2p.data.StructureTest;
+
 /**
  * Test harness for loading / storing Hash objects
  *
diff --git a/core/java/test/junit/net/i2p/data/RouterInfoTest.java b/router/java/test/junit/net/i2p/data/router/RouterInfoTest.java
similarity index 88%
rename from core/java/test/junit/net/i2p/data/RouterInfoTest.java
rename to router/java/test/junit/net/i2p/data/router/RouterInfoTest.java
index 6874ffa672a65554c8cf00431e28e9f066b58012..daf89cda3c02119ceccd5c41961264eea53e07c6 100644
--- a/core/java/test/junit/net/i2p/data/RouterInfoTest.java
+++ b/router/java/test/junit/net/i2p/data/router/RouterInfoTest.java
@@ -1,4 +1,4 @@
-package net.i2p.data;
+package net.i2p.data.router;
 /*
  * free (adj.): unencumbered; not under the control of others
  * Written by jrandom in 2003 and released into the public domain 
@@ -12,6 +12,16 @@ import java.util.HashSet;
 import java.util.Properties;
 
 import net.i2p.crypto.KeyGenerator;
+import net.i2p.data.Certificate;
+import net.i2p.data.DataFormatException;
+import net.i2p.data.DataStructure;
+import net.i2p.data.Hash;
+import net.i2p.data.HashTest;
+import net.i2p.data.PrivateKey;
+import net.i2p.data.PublicKey;
+import net.i2p.data.SigningPrivateKey;
+import net.i2p.data.SigningPublicKey;
+import net.i2p.data.StructureTest;
 import net.i2p.util.Log;
 
 /**
diff --git a/router/java/test/junit/net/i2p/router/SSUDemo.java b/router/java/test/junit/net/i2p/router/SSUDemo.java
index 6e08c3aad814a00e3ae5eec3c08c2d5a641eba77..5ae9ba101bc383d8d0656d1c7f1b49d2152f57c6 100644
--- a/router/java/test/junit/net/i2p/router/SSUDemo.java
+++ b/router/java/test/junit/net/i2p/router/SSUDemo.java
@@ -10,8 +10,8 @@ import net.i2p.I2PAppContext;
 import net.i2p.data.Base64;
 import net.i2p.data.DataFormatException;
 import net.i2p.data.Hash;
-import net.i2p.data.RouterIdentity;
-import net.i2p.data.RouterInfo;
+import net.i2p.data.router.RouterIdentity;
+import net.i2p.data.router.RouterInfo;
 import net.i2p.data.i2np.DatabaseStoreMessage;
 import net.i2p.data.i2np.I2NPMessage;
 import net.i2p.data.i2np.I2NPMessageException;
diff --git a/router/java/test/junit/net/i2p/router/message/BuildTestMessageJob.java b/router/java/test/junit/net/i2p/router/message/BuildTestMessageJob.java
index 85b172cce1ad84f27dcc1e5f8253b62316409dc5..f8c4e13dfc776b771992e7d0ced69fc048f308eb 100644
--- a/router/java/test/junit/net/i2p/router/message/BuildTestMessageJob.java
+++ b/router/java/test/junit/net/i2p/router/message/BuildTestMessageJob.java
@@ -14,7 +14,7 @@ import java.util.Set;
 import net.i2p.data.Certificate;
 import net.i2p.data.Hash;
 import net.i2p.data.PublicKey;
-import net.i2p.data.RouterInfo;
+import net.i2p.data.router.RouterInfo;
 import net.i2p.data.SessionKey;
 import net.i2p.data.SessionTag;
 import net.i2p.data.i2np.DeliveryInstructions;
diff --git a/router/java/test/junit/net/i2p/router/networkdb/kademlia/RouterGenerator.java b/router/java/test/junit/net/i2p/router/networkdb/kademlia/RouterGenerator.java
index b8ae16225feaacc5b4306e814c322e091bfbbd66..22a4995f9dd0e9e4a9225af476f8d03554c9f219 100644
--- a/router/java/test/junit/net/i2p/router/networkdb/kademlia/RouterGenerator.java
+++ b/router/java/test/junit/net/i2p/router/networkdb/kademlia/RouterGenerator.java
@@ -19,9 +19,9 @@ import net.i2p.crypto.KeyGenerator;
 import net.i2p.data.Certificate;
 import net.i2p.data.PrivateKey;
 import net.i2p.data.PublicKey;
-import net.i2p.data.RouterAddress;
-import net.i2p.data.RouterIdentity;
-import net.i2p.data.RouterInfo;
+import net.i2p.data.router.RouterAddress;
+import net.i2p.data.router.RouterIdentity;
+import net.i2p.data.router.RouterInfo;
 import net.i2p.data.SigningPrivateKey;
 import net.i2p.data.SigningPublicKey;
 import net.i2p.util.Clock;
diff --git a/router/java/test/junit/net/i2p/router/transport/BandwidthLimitedInputStream.java b/router/java/test/junit/net/i2p/router/transport/BandwidthLimitedInputStream.java
index a38ccbfe4cbada14dee79033b55b3034762e400d..5005797292a743918edc2e52a9cdd62c431abbdf 100644
--- a/router/java/test/junit/net/i2p/router/transport/BandwidthLimitedInputStream.java
+++ b/router/java/test/junit/net/i2p/router/transport/BandwidthLimitedInputStream.java
@@ -12,7 +12,7 @@ import java.io.FilterInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 
-import net.i2p.data.RouterIdentity;
+import net.i2p.data.router.RouterIdentity;
 import net.i2p.router.RouterContext;
 import net.i2p.util.Log;
 
diff --git a/router/java/test/junit/net/i2p/router/transport/BandwidthLimitedOutputStream.java b/router/java/test/junit/net/i2p/router/transport/BandwidthLimitedOutputStream.java
index a01f27071b0521179928742676064d5f386eb70b..bc2c07b283775d3720c4694aea13fee3b9e62e40 100644
--- a/router/java/test/junit/net/i2p/router/transport/BandwidthLimitedOutputStream.java
+++ b/router/java/test/junit/net/i2p/router/transport/BandwidthLimitedOutputStream.java
@@ -12,7 +12,7 @@ import java.io.FilterOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
 
-import net.i2p.data.RouterIdentity;
+import net.i2p.data.router.RouterIdentity;
 import net.i2p.router.RouterContext;
 import net.i2p.util.Log;
 
diff --git a/router/java/test/junit/net/i2p/router/transport/udp/UDPFlooder.java b/router/java/test/junit/net/i2p/router/transport/udp/UDPFlooder.java
index a5bdf5c623c3470a4948db6c97c76c123420d41b..1625c3fe1238e9f224afbc81c87e5f40e2e9fb28 100644
--- a/router/java/test/junit/net/i2p/router/transport/udp/UDPFlooder.java
+++ b/router/java/test/junit/net/i2p/router/transport/udp/UDPFlooder.java
@@ -3,7 +3,7 @@ package net.i2p.router.transport.udp;
 import java.util.ArrayList;
 import java.util.List;
 
-import net.i2p.data.RouterInfo;
+import net.i2p.data.router.RouterInfo;
 import net.i2p.data.i2np.DataMessage;
 import net.i2p.data.i2np.I2NPMessage;
 import net.i2p.router.OutNetMessage;
diff --git a/router/java/test/junit/net/i2p/router/tunnel/RouterTestBase.java b/router/java/test/junit/net/i2p/router/tunnel/RouterTestBase.java
index 9e700d0814ffe688061173bf4f31d20c96ef5f8d..e308507dfe82ff20828f519c815200e6d1a98686 100644
--- a/router/java/test/junit/net/i2p/router/tunnel/RouterTestBase.java
+++ b/router/java/test/junit/net/i2p/router/tunnel/RouterTestBase.java
@@ -1,8 +1,8 @@
 package net.i2p.router.tunnel;
 
 import net.i2p.data.Hash;
-import net.i2p.data.RouterIdentity;
-import net.i2p.data.RouterInfo;
+import net.i2p.data.router.RouterIdentity;
+import net.i2p.data.router.RouterInfo;
 import net.i2p.router.Router;
 import net.i2p.router.RouterContext;