diff --git a/include/config-parser.h b/include/config-parser.h
index 08688673056711edd619c5f75f232a3c7e765036..41bef023a0ed0551d241ea89b20332749e463c59 100644
--- a/include/config-parser.h
+++ b/include/config-parser.h
@@ -14,17 +14,23 @@ typedef std::map<std::string,std::string> ConfigMap;
 class ConfigParser
 {
 	public:
-		ConfigParser();
+		static ConfigParser UserSettings();
+
 		~ConfigParser();
 	
 		ConfigMap userSettings(){ return this->readFile( "settings.cfg" ); }
 
+		std::string toString() const;
+
 	private:
+		ConfigParser( std::string path );
  		const std::string CONFIG_DIRECTORY = "config";
  		const char DELIMINATOR = ':';
  		const char COMMENT_CHAR = '#';
 		Logger& _logger;
 
+		ConfigMap _config;
+
 		ConfigMap readFile( std::string path );
 		// void writeConfigFile( std::map settings );
 		
diff --git a/src/chunk.cpp b/src/chunk.cpp
index b13330b762959b76a9640cbe9522fe08205d9b88..a3d355a530dc8331603a76df90c883845c86e8bc 100644
--- a/src/chunk.cpp
+++ b/src/chunk.cpp
@@ -46,7 +46,7 @@ std::string Chunk::getRadiationString() const { return std::to_string(this->radi
 std::string Chunk::getAgeString() const { return std::to_string(this->age); }
 
 std::string Chunk::getString( ChunkQuery format ) const
-	{return "rest";}
+	{ return "rest"; }
 
 void Chunk::visualise() const { std::cout << this->getString() << std::endl; }
 std::string Chunk::getString() const
diff --git a/src/config-parser.cpp b/src/config-parser.cpp
index 81c39be24995c790cddeb8d466f10ae24b0cf9c3..58df3c1d27a595365f48e51e007d5529557eecac 100644
--- a/src/config-parser.cpp
+++ b/src/config-parser.cpp
@@ -1,24 +1,27 @@
 #include "config-parser.h"
 
-std::ostream& operator<<( std::ostream& os, const ConfigMap& obj )
+ConfigParser ConfigParser::UserSettings()
 {
-	for( const auto& [ key, value ] : obj )
-	{
-		os << "[" << key.c_str() << "]" << value.c_str() << std::endl;
-	}
-	return os;
+	ConfigParser parser("settings.cfg");
+	return parser;
 }
 
-ConfigParser::ConfigParser()
-	: _logger( Logger::instance() )
+
+std::string ConfigParser::toString() const
 {
-	this->_logger.info( "Creating config parser" );
+	std::string str = "";
+	for( const auto [key, value]  : this->_config )
+		{ str += "["+key+"] "+value+"\n"; }
+	return str;
 }
+std::ostream& operator<<( std::ostream& os, const ConfigParser& obj ) { return os << obj.toString(); }
+
+ConfigParser::ConfigParser( std::string path )
+	: _logger( Logger::instance() )
+{ this->_logger.info( "Creating config parser" ); }
 
 ConfigParser::~ConfigParser()
-{
-	this->_logger.info( "Closing config parser" );
-}
+	{ this->_logger.info( "Closing config parser" ); }
 
 
 ConfigMap ConfigParser::readFile( std::string path )
@@ -49,6 +52,7 @@ ConfigMap ConfigParser::readFile( std::string path )
 	} else 
 		{ this->_logger.error( "Unable to load specified configuration file:\n"+path ); }
 
+	this->_config = confMap;
 	return confMap;
 }
 
diff --git a/src/main.cpp b/src/main.cpp
index 5e11d8edc6a7c23ab9273fc877cec309541122d8..36a585e7d598eb3f4d34ae5743336ff6ad241e70 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -12,8 +12,8 @@ int main() {
 	SaveManager saveManager;
 	state = Initialise;
 
-	ConfigParser configParser;
-	ConfigMap userSettings = configParser.userSettings();
+	ConfigParser userSettings = ConfigParser::UserSettings();
+
 	EntityManager entityManager;
 
 	// Seed the random number generator