diff --git a/include/chunk.h b/include/chunk.h
index 087019f0e48bc11b129de055e6a0c4f9ea681a9f..5b1496c1e63ce0073d4b2974589cb128d63e7d02 100644
--- a/include/chunk.h
+++ b/include/chunk.h
@@ -6,6 +6,7 @@
 #include <string>
 #include <cstdlib>
 #include <iostream>
+#include <vector>
 
 #include "logger.h"
 
@@ -34,6 +35,8 @@ class Chunk
 
 		int valVisual();
 
+		// std::vector<uint8_t> serialise();
+
 	private:
 		Logger& _logger;
 
diff --git a/include/main.h b/include/main.h
index efab70116a5388e1c74ba9649b6a8dede035f864..b16f09a36584eb0e9023e8dc1b66c34807f1fb22 100644
--- a/include/main.h
+++ b/include/main.h
@@ -3,6 +3,9 @@
 
 #include <iostream>
 #include <cstdint>
+#include <vector>
+#include <algorithm>
+#include <string>
 
 enum GenerationMethod
 {
diff --git a/include/world-hex-2d.h b/include/world-hex-2d.h
index e64c98e87ad4ff36783adbff05731e817b6b92de..e37fd0ab5c82d944caf3306343d2fc24cc5571ba 100644
--- a/include/world-hex-2d.h
+++ b/include/world-hex-2d.h
@@ -9,6 +9,7 @@
 
 #include <string>
 #include <iostream>
+#include <vector>
 
 
 class WorldHex2D
@@ -32,6 +33,9 @@ class WorldHex2D
 		void visualise();
 		void visualiseBlocky();
 		Chunk* showChunk( int s, int q, int r );
+
+		char* seed = "HelloWorkld";
+		std::vector<uint8_t> serialise();
 	private:
 		Logger& _logger;
 		std::unordered_map<int, std::unordered_map<int, std::unordered_map<int, Chunk*>>> chunks_;
diff --git a/src/chunk.cpp b/src/chunk.cpp
index b13330b762959b76a9640cbe9522fe08205d9b88..68173ef92bf0cbf51e333496d10e8db325d1768a 100644
--- a/src/chunk.cpp
+++ b/src/chunk.cpp
@@ -9,7 +9,6 @@ Chunk::Chunk( int x, int y, int z )
 }
 Chunk::~Chunk()
 {
-	// this->_logger.info( "Deleting Chunk" );
 }
 void Chunk::generate(){ this->generate_random(); }
 void Chunk::generate_random()
@@ -64,6 +63,12 @@ std::string Chunk::getString() const
 	return str;
 }
 
+/*std::vector<uint8_t> Chunk::serialise()
+{
+	std::vector< uint8_t > vect;
+	return vect;
+}*/
+
 int Chunk::valVisual()
 {
 	int val = this->density * 10 / ( 0xFFFF );
diff --git a/src/main.cpp b/src/main.cpp
index 8dd269cf3782d6e20de7be928efa8e850c43396d..74b8861760bd87ddb616c0393881bc744a72597b 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -11,10 +11,11 @@ int main() {
 	SaveManager saveManager;
 	state = Initialise;
 	// Seed the random number generator
-	srand(static_cast<unsigned int>(time(nullptr)));
 	
 	// Genrate a Random chunk
 	WorldHex2D map( 5 );
+
+	// srand( std::stoi(map.seed,nullptr,0) );
 	//Chunk* chunk = new Chunk( 0, 0, 0);
 	//std::cout << chunk.getString() << std::endl;
 	// Chunk* chunk = map.getMidChunk();
@@ -25,6 +26,12 @@ int main() {
 	map.moveInto( 5, -2, -3 )->visualise();
 	map.visualise();
 
+	std::vector< uint8_t > serial = map.serialise();
+	std::cout << "************************" << std::endl
+		<< "** VISUALISING SERIAL **" << std::endl
+		<< "************************" << std::endl;
+	std::for_each( serial.begin(), serial.end(), [](uint8_t ch){ std::cout<<ch; } );
+	std::cout << std::endl << "************************" << std::endl;
 	// Menu Loop
 
 	// List Saves
diff --git a/src/world-hex-2d.cpp b/src/world-hex-2d.cpp
index 2e7ced3105c2cbb718b041b3d33db8fbb71b9989..28c0d2a99a2b32517730d66878f147839dbdaed6 100644
--- a/src/world-hex-2d.cpp
+++ b/src/world-hex-2d.cpp
@@ -12,6 +12,7 @@ WorldHex2D::WorldHex2D( uint8_t width, uint8_t height, uint8_t depth)
 	_logger( Logger::instance() )
 {
 	this->_logger.info( "Creating Hex Map" );
+	this->seed = (char*)(time(nullptr));
 	this->generateWorld();
 }
 
@@ -25,9 +26,12 @@ WorldHex2D::~WorldHex2D()
 		for( const auto& [keyY, value2] : value1)
 		{
 			for( const auto& [keyZ, chunk] : value2)
-				{ delete chunk; }
+			{
+				if( chunk ) delete chunk;
+			}
 		}
 	}
+	this->_logger.info( "World Cleaned" );
 }
 void WorldHex2D::generateWorld()
 {
@@ -138,6 +142,14 @@ Chunk* WorldHex2D::getChunk( int chunkS, int chunkQ, int chunkR )
 	return nullptr;
 }
 
+std::vector<uint8_t> WorldHex2D::serialise()
+{
+//	const uint8_t* bytes = reinterpret_cast< const uint8_t* >( &this->seed );
+	const uint8_t* bytes = reinterpret_cast< const uint8_t* >( this->getChunk(0,0,0) );
+	return std::vector<uint8_t>(bytes, bytes + sizeof(std::string));
+}
+
+
 Chunk* WorldHex2D::moveInto( int s, int q, int r )
 {
 	Chunk * core = this->getChunk( s, q, r );