diff --git a/LatticeDehomogenization/src/inputParsing/DetermineLatticeType.cpp b/LatticeDehomogenization/src/inputParsing/DetermineLatticeType.cpp
index 26cbcc4ea98334946de6614cf9aca238ada94d40..f3cb719fc019c4f68a80a04bc676b2445ef1082e 100644
--- a/LatticeDehomogenization/src/inputParsing/DetermineLatticeType.cpp
+++ b/LatticeDehomogenization/src/inputParsing/DetermineLatticeType.cpp
@@ -1,7 +1,8 @@
 #include "DetermineLatticeType.h"
+#include "unitcells/UnitCellTypes.h"
 
 DetermineLatticeType::DetermineLatticeType(ParseInputFile* filedata)
-	: _data(filedata)
+	: _data(filedata), _unitcell(BCC), _type(UnrecognisedLatticeType)
 {
 	if (!_data->_hasCells && !_data->_hasPositions)
 	{
@@ -9,6 +10,17 @@ DetermineLatticeType::DetermineLatticeType(ParseInputFile* filedata)
 		return;
 	}
 
+	if (_data->_hasCellType)
+	{
+		const std::string& cellstring = _data->_cellType;
+		if (SupportedCells::isSupportedCell(cellstring))
+			_unitcell = SupportedCells::getCellType(cellstring);
+		else
+		{
+			_errors.emplace_back(UnrecognisedUnitCell);
+		}
+	}
+
 	// Simple Lattice
 	if (!_data->_hasPositions)
 	{
diff --git a/LatticeDehomogenization/src/inputParsing/DetermineLatticeType.h b/LatticeDehomogenization/src/inputParsing/DetermineLatticeType.h
index 271b400ebbde8a52559a2ea057a4410d8179568e..2a384a7b0a74bc39fc425f0df83c4e7a9ec2a74c 100644
--- a/LatticeDehomogenization/src/inputParsing/DetermineLatticeType.h
+++ b/LatticeDehomogenization/src/inputParsing/DetermineLatticeType.h
@@ -3,6 +3,8 @@
 #include "ParseInputFile.h"
 #include "lattice/LatticeData.h"
 
+enum UnitCells;
+
 
 /* Lattice Type Determination */
 class DetermineLatticeType
@@ -12,11 +14,13 @@ private:
 	std::vector<ErrorCodes> _errors;
 
 	LatticeType _type;
+	UnitCells _unitcell;
 	
 
 public:
 	DetermineLatticeType(ParseInputFile* filedata);
 
+	UnitCells getCellType() { return _unitcell; }
 	LatticeType getLatticeType() { return _type; }
 	template<class T>
 	T getLatticeData()