diff --git a/network/pom.xml b/network/pom.xml
new file mode 100644
index 00000000..1f00a82b
--- /dev/null
+++ b/network/pom.xml
@@ -0,0 +1,138 @@
+
+ 4.0.0
+
+ seng302
+ team-7
+ 1.0-SNAPSHOT
+
+
+ jar
+ network
+ network
+ 1.0-SNAPSHOT
+
+
+
+ junit
+ junit
+ 4.12
+ test
+
+
+
+
+
+
+ org.mockito
+ mockito-all
+ 1.9.5
+
+
+
+
+
+ org.testng
+ testng
+ 6.11
+ test
+
+
+
+
+
+
+
+ maven2-repository.dev.java.net
+ Java.net repository
+ http://download.java.net/maven/2
+
+
+
+
+
+ 1.8
+ 1.8
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+ 3.5.1
+
+
+ org.apache.maven.plugins
+ maven-shade-plugin
+ 2.4.3
+
+
+
+
+ seng302.App
+ ${maven.compiler.source}
+ ${maven.compiler.target}
+
+
+
+
+
+
+ package
+
+ shade
+
+
+
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-jxr-plugin
+ 2.5
+
+
+ org.apache.maven.plugins
+ maven-pmd-plugin
+ 3.6
+
+ true
+ ${maven.compiler.target}
+
+ /rulesets/java/basic.xml
+ /rulesets/java/imports.xml
+ /rulesets/java/codesize.xml
+ /rulesets/java/design.xml
+ /rulesets/java/empty.xml
+ /rulesets/java/junit.xml
+ /rulesets/java/unusedcode.xml
+
+ true
+ utf-8
+
+
+
+ org.apache.maven.plugins
+ maven-javadoc-plugin
+ 2.10.3
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-report-plugin
+ 2.19.1
+
+
+ org.apache.maven.plugins
+ maven-project-info-reports-plugin
+ 2.8.1
+
+
+
+
diff --git a/src/main/java/seng302/Networking/BinaryMesageEncoder.java b/network/src/main/java/seng302/Networking/BinaryMesageEncoder.java
similarity index 100%
rename from src/main/java/seng302/Networking/BinaryMesageEncoder.java
rename to network/src/main/java/seng302/Networking/BinaryMesageEncoder.java
diff --git a/src/main/java/seng302/Networking/BinaryMessageDecoder.java b/network/src/main/java/seng302/Networking/BinaryMessageDecoder.java
similarity index 100%
rename from src/main/java/seng302/Networking/BinaryMessageDecoder.java
rename to network/src/main/java/seng302/Networking/BinaryMessageDecoder.java
diff --git a/src/main/java/seng302/Networking/MessageDecoders/AverageWindDecoder.java b/network/src/main/java/seng302/Networking/MessageDecoders/AverageWindDecoder.java
similarity index 100%
rename from src/main/java/seng302/Networking/MessageDecoders/AverageWindDecoder.java
rename to network/src/main/java/seng302/Networking/MessageDecoders/AverageWindDecoder.java
diff --git a/src/main/java/seng302/Networking/MessageDecoders/BoatLocationDecoder.java b/network/src/main/java/seng302/Networking/MessageDecoders/BoatLocationDecoder.java
similarity index 100%
rename from src/main/java/seng302/Networking/MessageDecoders/BoatLocationDecoder.java
rename to network/src/main/java/seng302/Networking/MessageDecoders/BoatLocationDecoder.java
diff --git a/src/main/java/seng302/Networking/MessageDecoders/CourseWindDecoder.java b/network/src/main/java/seng302/Networking/MessageDecoders/CourseWindDecoder.java
similarity index 100%
rename from src/main/java/seng302/Networking/MessageDecoders/CourseWindDecoder.java
rename to network/src/main/java/seng302/Networking/MessageDecoders/CourseWindDecoder.java
diff --git a/src/main/java/seng302/Networking/MessageDecoders/MarkRoundingDecoder.java b/network/src/main/java/seng302/Networking/MessageDecoders/MarkRoundingDecoder.java
similarity index 100%
rename from src/main/java/seng302/Networking/MessageDecoders/MarkRoundingDecoder.java
rename to network/src/main/java/seng302/Networking/MessageDecoders/MarkRoundingDecoder.java
diff --git a/src/main/java/seng302/Networking/MessageDecoders/RaceStartStatusDecoder.java b/network/src/main/java/seng302/Networking/MessageDecoders/RaceStartStatusDecoder.java
similarity index 100%
rename from src/main/java/seng302/Networking/MessageDecoders/RaceStartStatusDecoder.java
rename to network/src/main/java/seng302/Networking/MessageDecoders/RaceStartStatusDecoder.java
diff --git a/src/main/java/seng302/Networking/MessageDecoders/RaceStatusDecoder.java b/network/src/main/java/seng302/Networking/MessageDecoders/RaceStatusDecoder.java
similarity index 100%
rename from src/main/java/seng302/Networking/MessageDecoders/RaceStatusDecoder.java
rename to network/src/main/java/seng302/Networking/MessageDecoders/RaceStatusDecoder.java
diff --git a/src/main/java/seng302/Networking/MessageDecoders/XMLMessageDecoder.java b/network/src/main/java/seng302/Networking/MessageDecoders/XMLMessageDecoder.java
similarity index 100%
rename from src/main/java/seng302/Networking/MessageDecoders/XMLMessageDecoder.java
rename to network/src/main/java/seng302/Networking/MessageDecoders/XMLMessageDecoder.java
diff --git a/src/main/java/seng302/Networking/MessageEncoders/RaceVisionByteEncoder.java b/network/src/main/java/seng302/Networking/MessageEncoders/RaceVisionByteEncoder.java
similarity index 100%
rename from src/main/java/seng302/Networking/MessageEncoders/RaceVisionByteEncoder.java
rename to network/src/main/java/seng302/Networking/MessageEncoders/RaceVisionByteEncoder.java
diff --git a/src/main/java/seng302/Networking/MessageEncoders/XMLMessageEncoder.java b/network/src/main/java/seng302/Networking/MessageEncoders/XMLMessageEncoder.java
similarity index 100%
rename from src/main/java/seng302/Networking/MessageEncoders/XMLMessageEncoder.java
rename to network/src/main/java/seng302/Networking/MessageEncoders/XMLMessageEncoder.java
diff --git a/src/main/java/seng302/Networking/MockOutput.java b/network/src/main/java/seng302/Networking/MockOutput.java
similarity index 100%
rename from src/main/java/seng302/Networking/MockOutput.java
rename to network/src/main/java/seng302/Networking/MockOutput.java
diff --git a/src/main/java/seng302/Networking/PacketDump/AC35DumpReader.java b/network/src/main/java/seng302/Networking/PacketDump/AC35DumpReader.java
similarity index 100%
rename from src/main/java/seng302/Networking/PacketDump/AC35DumpReader.java
rename to network/src/main/java/seng302/Networking/PacketDump/AC35DumpReader.java
diff --git a/src/main/java/seng302/Networking/PacketDump/AC35Packet.java b/network/src/main/java/seng302/Networking/PacketDump/AC35Packet.java
similarity index 100%
rename from src/main/java/seng302/Networking/PacketDump/AC35Packet.java
rename to network/src/main/java/seng302/Networking/PacketDump/AC35Packet.java
diff --git a/src/main/java/seng302/Networking/Utils/AC35Data.java b/network/src/main/java/seng302/Networking/Utils/AC35Data.java
similarity index 100%
rename from src/main/java/seng302/Networking/Utils/AC35Data.java
rename to network/src/main/java/seng302/Networking/Utils/AC35Data.java
diff --git a/src/main/java/seng302/Networking/Utils/AverageWind.java b/network/src/main/java/seng302/Networking/Utils/AverageWind.java
similarity index 100%
rename from src/main/java/seng302/Networking/Utils/AverageWind.java
rename to network/src/main/java/seng302/Networking/Utils/AverageWind.java
diff --git a/src/main/java/seng302/Networking/Utils/BoatLocationMessage.java b/network/src/main/java/seng302/Networking/Utils/BoatLocationMessage.java
similarity index 100%
rename from src/main/java/seng302/Networking/Utils/BoatLocationMessage.java
rename to network/src/main/java/seng302/Networking/Utils/BoatLocationMessage.java
diff --git a/src/main/java/seng302/Networking/Utils/BoatStatus.java b/network/src/main/java/seng302/Networking/Utils/BoatStatus.java
similarity index 100%
rename from src/main/java/seng302/Networking/Utils/BoatStatus.java
rename to network/src/main/java/seng302/Networking/Utils/BoatStatus.java
diff --git a/src/main/java/seng302/Networking/Utils/ByteConverter.java b/network/src/main/java/seng302/Networking/Utils/ByteConverter.java
similarity index 100%
rename from src/main/java/seng302/Networking/Utils/ByteConverter.java
rename to network/src/main/java/seng302/Networking/Utils/ByteConverter.java
diff --git a/src/main/java/seng302/Networking/Utils/CourseWind.java b/network/src/main/java/seng302/Networking/Utils/CourseWind.java
similarity index 100%
rename from src/main/java/seng302/Networking/Utils/CourseWind.java
rename to network/src/main/java/seng302/Networking/Utils/CourseWind.java
diff --git a/src/main/java/seng302/Networking/Utils/CourseWinds.java b/network/src/main/java/seng302/Networking/Utils/CourseWinds.java
similarity index 100%
rename from src/main/java/seng302/Networking/Utils/CourseWinds.java
rename to network/src/main/java/seng302/Networking/Utils/CourseWinds.java
diff --git a/src/main/java/seng302/Networking/Utils/Heartbeat.java b/network/src/main/java/seng302/Networking/Utils/Heartbeat.java
similarity index 100%
rename from src/main/java/seng302/Networking/Utils/Heartbeat.java
rename to network/src/main/java/seng302/Networking/Utils/Heartbeat.java
diff --git a/src/main/java/seng302/Networking/Utils/MarkRounding.java b/network/src/main/java/seng302/Networking/Utils/MarkRounding.java
similarity index 100%
rename from src/main/java/seng302/Networking/Utils/MarkRounding.java
rename to network/src/main/java/seng302/Networking/Utils/MarkRounding.java
diff --git a/src/main/java/seng302/Networking/Utils/MessageType.java b/network/src/main/java/seng302/Networking/Utils/MessageType.java
similarity index 100%
rename from src/main/java/seng302/Networking/Utils/MessageType.java
rename to network/src/main/java/seng302/Networking/Utils/MessageType.java
diff --git a/src/main/java/seng302/Networking/Utils/RaceMessage.java b/network/src/main/java/seng302/Networking/Utils/RaceMessage.java
similarity index 100%
rename from src/main/java/seng302/Networking/Utils/RaceMessage.java
rename to network/src/main/java/seng302/Networking/Utils/RaceMessage.java
diff --git a/src/main/java/seng302/Networking/Utils/RaceStartStatus.java b/network/src/main/java/seng302/Networking/Utils/RaceStartStatus.java
similarity index 100%
rename from src/main/java/seng302/Networking/Utils/RaceStartStatus.java
rename to network/src/main/java/seng302/Networking/Utils/RaceStartStatus.java
diff --git a/src/main/java/seng302/Networking/Utils/RaceStatus.java b/network/src/main/java/seng302/Networking/Utils/RaceStatus.java
similarity index 100%
rename from src/main/java/seng302/Networking/Utils/RaceStatus.java
rename to network/src/main/java/seng302/Networking/Utils/RaceStatus.java
diff --git a/src/main/java/seng302/Networking/Utils/XMLMessage.java b/network/src/main/java/seng302/Networking/Utils/XMLMessage.java
similarity index 100%
rename from src/main/java/seng302/Networking/Utils/XMLMessage.java
rename to network/src/main/java/seng302/Networking/Utils/XMLMessage.java
diff --git a/src/main/java/seng302/Networking/VisualiserInput.java b/network/src/main/java/seng302/Networking/VisualiserInput.java
similarity index 100%
rename from src/main/java/seng302/Networking/VisualiserInput.java
rename to network/src/main/java/seng302/Networking/VisualiserInput.java
diff --git a/src/main/resources/dataDumps/ac35.bin b/network/src/main/resources/dataDumps/ac35.bin
similarity index 100%
rename from src/main/resources/dataDumps/ac35.bin
rename to network/src/main/resources/dataDumps/ac35.bin
diff --git a/src/main/resources/raceXML/Boats.xml b/network/src/main/resources/raceXML/Boats.xml
similarity index 100%
rename from src/main/resources/raceXML/Boats.xml
rename to network/src/main/resources/raceXML/Boats.xml
diff --git a/src/main/resources/raceXML/Race.xml b/network/src/main/resources/raceXML/Race.xml
similarity index 100%
rename from src/main/resources/raceXML/Race.xml
rename to network/src/main/resources/raceXML/Race.xml
diff --git a/src/main/resources/raceXML/Regatta.xml b/network/src/main/resources/raceXML/Regatta.xml
similarity index 100%
rename from src/main/resources/raceXML/Regatta.xml
rename to network/src/main/resources/raceXML/Regatta.xml
diff --git a/src/test/java/seng302/Networking/BinaryMessageDecoderTest.java b/network/src/test/java/seng302/Networking/BinaryMessageDecoderTest.java
similarity index 100%
rename from src/test/java/seng302/Networking/BinaryMessageDecoderTest.java
rename to network/src/test/java/seng302/Networking/BinaryMessageDecoderTest.java
diff --git a/src/test/java/seng302/Networking/ByteConverterTest.java b/network/src/test/java/seng302/Networking/ByteConverterTest.java
similarity index 100%
rename from src/test/java/seng302/Networking/ByteConverterTest.java
rename to network/src/test/java/seng302/Networking/ByteConverterTest.java
diff --git a/src/test/java/seng302/Networking/MessageDecoders/BoatLocationDecoderTest.java b/network/src/test/java/seng302/Networking/MessageDecoders/BoatLocationDecoderTest.java
similarity index 100%
rename from src/test/java/seng302/Networking/MessageDecoders/BoatLocationDecoderTest.java
rename to network/src/test/java/seng302/Networking/MessageDecoders/BoatLocationDecoderTest.java
diff --git a/src/test/java/seng302/Networking/MessageDecoders/CourseWindDecoderTest.java b/network/src/test/java/seng302/Networking/MessageDecoders/CourseWindDecoderTest.java
similarity index 100%
rename from src/test/java/seng302/Networking/MessageDecoders/CourseWindDecoderTest.java
rename to network/src/test/java/seng302/Networking/MessageDecoders/CourseWindDecoderTest.java
diff --git a/src/test/java/seng302/Networking/MessageDecoders/RaceStartStatusDecoderTest.java b/network/src/test/java/seng302/Networking/MessageDecoders/RaceStartStatusDecoderTest.java
similarity index 100%
rename from src/test/java/seng302/Networking/MessageDecoders/RaceStartStatusDecoderTest.java
rename to network/src/test/java/seng302/Networking/MessageDecoders/RaceStartStatusDecoderTest.java
diff --git a/src/test/java/seng302/Networking/MessageDecoders/RaceStatusDecoderTest.java b/network/src/test/java/seng302/Networking/MessageDecoders/RaceStatusDecoderTest.java
similarity index 100%
rename from src/test/java/seng302/Networking/MessageDecoders/RaceStatusDecoderTest.java
rename to network/src/test/java/seng302/Networking/MessageDecoders/RaceStatusDecoderTest.java
diff --git a/src/test/java/seng302/Networking/MessageDecoders/XMLMessageDecoderTest.java b/network/src/test/java/seng302/Networking/MessageDecoders/XMLMessageDecoderTest.java
similarity index 100%
rename from src/test/java/seng302/Networking/MessageDecoders/XMLMessageDecoderTest.java
rename to network/src/test/java/seng302/Networking/MessageDecoders/XMLMessageDecoderTest.java
diff --git a/src/test/java/seng302/Networking/XMLMessageEncoderTest.java b/network/src/test/java/seng302/Networking/XMLMessageEncoderTest.java
similarity index 100%
rename from src/test/java/seng302/Networking/XMLMessageEncoderTest.java
rename to network/src/test/java/seng302/Networking/XMLMessageEncoderTest.java
diff --git a/src/test/resources/raceXML/Regatta.xml b/network/src/test/resources/raceXML/Regatta.xml
similarity index 100%
rename from src/test/resources/raceXML/Regatta.xml
rename to network/src/test/resources/raceXML/Regatta.xml
diff --git a/pom.xml b/pom.xml
index cd0a669d..4126256e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,6 +10,7 @@
mock
visualiser
+ network
https://eng-git.canterbury.ac.nz/SENG302-2016/team-7