diff --git a/obj/ABoneLODController.h b/obj/ABoneLODController.h
index da28ba9b79662982f7c9a5d3354a472bdd02631e..dd730642146d360add059c6e0f4ac802be67bf75 100644
--- a/obj/ABoneLODController.h
+++ b/obj/ABoneLODController.h
@@ -32,6 +32,8 @@ public:
 	virtual void FixLinks( const vector<NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
 	virtual list<NiObjectRef> GetRefs() const;
 	virtual const Type & GetType() const;
+
+	//TODO:  This is not a priority but needs to be implemented eventually
 protected:
 	A_BONE_L_O_D_CONTROLLER_MEMBERS
 };
diff --git a/obj/BSFurnitureMarker.cpp b/obj/BSFurnitureMarker.cpp
index 4738518dfc52ae9045dde463b6fc2c27ec4e74b6..4a06a29470b7ee9587f9c340c2dd7e56bee42390 100644
--- a/obj/BSFurnitureMarker.cpp
+++ b/obj/BSFurnitureMarker.cpp
@@ -35,3 +35,12 @@ const Type & BSFurnitureMarker::GetType() const {
 	return TYPE;
 };
 
+vector<FurniturePosition> BSFurnitureMarker::GetFurniturePositions() const {
+	return positions;
+}
+	
+void BSFurnitureMarker::SetFurniturePositions( const vector<FurniturePosition> & n ) {
+	numPositions = uint(n.size());
+	positions = n;
+}
+
diff --git a/obj/BSFurnitureMarker.h b/obj/BSFurnitureMarker.h
index 36600358a28e5da62c2fada99b5fee1f2d40944d..d5d4efb29c63af603ad742cc67d3fca3b9fe929f 100644
--- a/obj/BSFurnitureMarker.h
+++ b/obj/BSFurnitureMarker.h
@@ -32,6 +32,10 @@ public:
 	virtual void FixLinks( const vector<NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
 	virtual list<NiObjectRef> GetRefs() const;
 	virtual const Type & GetType() const;
+
+	vector<FurniturePosition> GetFurniturePositions() const;
+	void SetFurniturePositions( const vector<FurniturePosition> & n );
+
 protected:
 	B_S_FURNITURE_MARKER_MEMBERS
 };
diff --git a/obj/BSXFlags.cpp b/obj/BSXFlags.cpp
index 595b31ff80c2677300dcf7cac96a9980026cb70f..172b27718ad214a337c007b029c73a8dba985aae 100644
--- a/obj/BSXFlags.cpp
+++ b/obj/BSXFlags.cpp
@@ -34,3 +34,10 @@ const Type & BSXFlags::GetType() const {
 	return TYPE;
 };
 
+uint BSXFlags::GetFlags() const {
+	return flags;
+};
+
+void BSXFlags::SetFlags( uint n ) {
+	flags = n;
+};
diff --git a/obj/BSXFlags.h b/obj/BSXFlags.h
index 2afc6692265b703592fc1263acb243672529abd5..beee3235c8ab2a42e0aa444dec70c8975043f247 100644
--- a/obj/BSXFlags.h
+++ b/obj/BSXFlags.h
@@ -30,6 +30,10 @@ public:
 	virtual void FixLinks( const vector<NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
 	virtual list<NiObjectRef> GetRefs() const;
 	virtual const Type & GetType() const;
+
+	uint GetFlags() const;
+	void SetFlags( uint n );
+
 protected:
 	B_S_X_FLAGS_MEMBERS
 };
diff --git a/obj/NiBinaryExtraData.cpp b/obj/NiBinaryExtraData.cpp
index 6afffdf98401beecf3ddb8ad52422e34624e96c0..dfa649c68c1b2603204b07a069f76e3d19c8b5db 100644
--- a/obj/NiBinaryExtraData.cpp
+++ b/obj/NiBinaryExtraData.cpp
@@ -35,3 +35,12 @@ const Type & NiBinaryExtraData::GetType() const {
 	return TYPE;
 };
 
+
+vector<byte> NiBinaryExtraData::GetData() const {
+	return binaryData.data;
+};
+
+void NiBinaryExtraData::SetData( const vector<byte> & n ) {
+	binaryData.dataSize = uint(n.size());
+	binaryData.data = n;
+};
\ No newline at end of file
diff --git a/obj/NiBinaryExtraData.h b/obj/NiBinaryExtraData.h
index b2223848407a533317cc30c376178daf94ef1801..d0f37b85c3539bb58667ba22f678a4df05595ce7 100644
--- a/obj/NiBinaryExtraData.h
+++ b/obj/NiBinaryExtraData.h
@@ -33,6 +33,10 @@ public:
 	virtual void FixLinks( const vector<NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
 	virtual list<NiObjectRef> GetRefs() const;
 	virtual const Type & GetType() const;
+
+	vector<byte> GetData() const;
+	void SetData( const vector<byte> & n );
+
 protected:
 	NI_BINARY_EXTRA_DATA_MEMBERS
 };
diff --git a/obj/NiBooleanExtraData.cpp b/obj/NiBooleanExtraData.cpp
index ec6d7e8a30cc18fe27166b0fc1d570a26bee2b7d..ece75ba9db04eaf8eb257f3c378070e0aeaf7040 100644
--- a/obj/NiBooleanExtraData.cpp
+++ b/obj/NiBooleanExtraData.cpp
@@ -34,3 +34,10 @@ const Type & NiBooleanExtraData::GetType() const {
 	return TYPE;
 };
 
+bool NiBooleanExtraData::GetData() const {
+	return (booleanData != 0);
+}
+
+void NiBooleanExtraData::SetData( bool n ) {
+	booleanData = n;
+}
\ No newline at end of file
diff --git a/obj/NiBooleanExtraData.h b/obj/NiBooleanExtraData.h
index 67ec97ef78644a5393853bd9c64952753bdb6eb6..c57ef1586ed4adf19ef7b4466c99b5df08d9e5a2 100644
--- a/obj/NiBooleanExtraData.h
+++ b/obj/NiBooleanExtraData.h
@@ -30,6 +30,10 @@ public:
 	virtual void FixLinks( const vector<NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
 	virtual list<NiObjectRef> GetRefs() const;
 	virtual const Type & GetType() const;
+
+	bool GetData() const;
+	void SetData( bool n );
+
 protected:
 	NI_BOOLEAN_EXTRA_DATA_MEMBERS
 };
diff --git a/obj/NiColorExtraData.cpp b/obj/NiColorExtraData.cpp
index 2f3d121e007fe59b7b1ad1003ccd99135e27bb55..9ab7e769f31ee5289692544b94c6e2fa3832953d 100644
--- a/obj/NiColorExtraData.cpp
+++ b/obj/NiColorExtraData.cpp
@@ -34,3 +34,10 @@ const Type & NiColorExtraData::GetType() const {
 	return TYPE;
 };
 
+Color4 NiColorExtraData::GetData() const {
+	return data;
+}
+	
+void NiColorExtraData::SetData( const Color4 & n ) {
+	data = n;
+}
diff --git a/obj/NiColorExtraData.h b/obj/NiColorExtraData.h
index 0f2d1573588126d4f764b43ad049d7e2dd5cbd04..3e1e55ef1da0f0f97f59c9fa0b4f3ada52f15a1b 100644
--- a/obj/NiColorExtraData.h
+++ b/obj/NiColorExtraData.h
@@ -30,6 +30,10 @@ public:
 	virtual void FixLinks( const vector<NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
 	virtual list<NiObjectRef> GetRefs() const;
 	virtual const Type & GetType() const;
+
+	Color4 GetData() const;
+	void SetData( const Color4 & n );
+
 protected:
 	NI_COLOR_EXTRA_DATA_MEMBERS
 };
diff --git a/obj/NiControllerManager.h b/obj/NiControllerManager.h
index 27ce8f6cf31d522300f689f76ae771cc59605d44..08e08267efd8acc4c3181611e8abca456ed3239d 100644
--- a/obj/NiControllerManager.h
+++ b/obj/NiControllerManager.h
@@ -35,6 +35,8 @@ public:
 	virtual void FixLinks( const vector<NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
 	virtual list<NiObjectRef> GetRefs() const;
 	virtual const Type & GetType() const;
+
+	//TODO:  This is not a priority but needs to be implemented eventually
 protected:
 	NI_CONTROLLER_MANAGER_MEMBERS
 };
diff --git a/obj/NiFloatExtraData.cpp b/obj/NiFloatExtraData.cpp
index 19fbc460578fbc8538d3518d87d0abba7c69d7a3..9c22636547fa27ee4f08e13a8a3b45419414942e 100644
--- a/obj/NiFloatExtraData.cpp
+++ b/obj/NiFloatExtraData.cpp
@@ -34,3 +34,10 @@ const Type & NiFloatExtraData::GetType() const {
 	return TYPE;
 };
 
+float NiFloatExtraData::GetData() const {
+	return floatData;
+}
+	
+void NiFloatExtraData::SetData( float n ) {
+	floatData = n;
+}
\ No newline at end of file
diff --git a/obj/NiFloatExtraData.h b/obj/NiFloatExtraData.h
index 017709dc90c9c7eb14b26ffaeb4efc53092f8953..dfadf8514a008dd3661d2b46c6e24c2e14660799 100644
--- a/obj/NiFloatExtraData.h
+++ b/obj/NiFloatExtraData.h
@@ -30,6 +30,10 @@ public:
 	virtual void FixLinks( const vector<NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
 	virtual list<NiObjectRef> GetRefs() const;
 	virtual const Type & GetType() const;
+	
+	float GetData() const;
+	void SetData( float n );
+
 protected:
 	NI_FLOAT_EXTRA_DATA_MEMBERS
 };
diff --git a/obj/NiFloatExtraDataController.h b/obj/NiFloatExtraDataController.h
index a977e89cde6e119ec8d7b92f69bb1658f08bca32..610c93e5cb3db5d671346f54fff867ca4a8a35c3 100644
--- a/obj/NiFloatExtraDataController.h
+++ b/obj/NiFloatExtraDataController.h
@@ -34,6 +34,8 @@ public:
 	virtual void FixLinks( const vector<NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
 	virtual list<NiObjectRef> GetRefs() const;
 	virtual const Type & GetType() const;
+
+	//TODO:  The function of all data is currently unknown.
 protected:
 	NI_FLOAT_EXTRA_DATA_CONTROLLER_MEMBERS
 };
diff --git a/obj/NiFloatsExtraData.cpp b/obj/NiFloatsExtraData.cpp
index 7657cfea7c1f7bcd09d24d0230e3f1fddc7d45df..80fd06d69e2e6d9a91b832471ce09a7a40ac002e 100644
--- a/obj/NiFloatsExtraData.cpp
+++ b/obj/NiFloatsExtraData.cpp
@@ -34,3 +34,11 @@ const Type & NiFloatsExtraData::GetType() const {
 	return TYPE;
 };
 
+vector<float> NiFloatsExtraData::GetData() const {
+	return data;
+}
+	
+void NiFloatsExtraData::SetData( const vector<float> & n ) {
+	numFloats = uint(n.size());
+	data = n;
+}
diff --git a/obj/NiFloatsExtraData.h b/obj/NiFloatsExtraData.h
index 64fa3f33c5410e52ee2c5c3a19c282524fe5a137..4d7c37d60fdb3143b3e3d8bf5cdf862fd6df514a 100644
--- a/obj/NiFloatsExtraData.h
+++ b/obj/NiFloatsExtraData.h
@@ -30,6 +30,10 @@ public:
 	virtual void FixLinks( const vector<NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
 	virtual list<NiObjectRef> GetRefs() const;
 	virtual const Type & GetType() const;
+
+	vector<float> GetData() const;
+	void SetData( const vector<float> & n );
+
 protected:
 	NI_FLOATS_EXTRA_DATA_MEMBERS
 };
diff --git a/obj/NiGeomMorpherController.cpp b/obj/NiGeomMorpherController.cpp
index aabfe34fb824da73246219a2db5f9105b37a8b2b..b8014b83c1d776052ae94e5b5bc1d32d4282ff7a 100644
--- a/obj/NiGeomMorpherController.cpp
+++ b/obj/NiGeomMorpherController.cpp
@@ -36,3 +36,19 @@ const Type & NiGeomMorpherController::GetType() const {
 	return TYPE;
 };
 
+vector< Ref<NiInterpolator> > NiGeomMorpherController::GetInterpolators() const {
+	return interpolators;
+}
+
+void NiGeomMorpherController::SetInterpolators( const vector< Ref<NiInterpolator> > & n ) {
+	numInterpolators = uint(n.size());
+	interpolators = n;
+}
+
+Ref<NiMorphData> NiGeomMorpherController::GetData() const {
+	return data;
+}
+
+void NiGeomMorpherController::SetData( const Ref<NiMorphData> & n ) {
+	data = n;
+}
\ No newline at end of file
diff --git a/obj/NiGeomMorpherController.h b/obj/NiGeomMorpherController.h
index 34a1ff70b71aac38afca9b9d16f402c11c38f18e..5dea8ee1c190e28dd0fc1f85c1de04e5e546ce83 100644
--- a/obj/NiGeomMorpherController.h
+++ b/obj/NiGeomMorpherController.h
@@ -35,6 +35,13 @@ public:
 	virtual void FixLinks( const vector<NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
 	virtual list<NiObjectRef> GetRefs() const;
 	virtual const Type & GetType() const;
+
+	//TODO: lots of unknown data in this object
+	vector< Ref<NiInterpolator> > GetInterpolators() const;
+	void SetInterpolators( const vector< Ref<NiInterpolator> > & n );
+
+	Ref<NiMorphData> GetData() const;
+	void SetData( const Ref<NiMorphData> & n );
 protected:
 	NI_GEOM_MORPHER_CONTROLLER_MEMBERS
 };
diff --git a/obj/NiIntegerExtraData.cpp b/obj/NiIntegerExtraData.cpp
index b3a495be3df30e3c72a992e59c45e5207925451a..96a9a3b1416ac821706abcb215c804d5af4172cb 100644
--- a/obj/NiIntegerExtraData.cpp
+++ b/obj/NiIntegerExtraData.cpp
@@ -34,3 +34,10 @@ const Type & NiIntegerExtraData::GetType() const {
 	return TYPE;
 };
 
+uint NiIntegerExtraData::GetData() const {
+	return integerData;
+}
+	
+void NiIntegerExtraData::SetData( uint n ) {
+	integerData = n;
+}
diff --git a/obj/NiIntegerExtraData.h b/obj/NiIntegerExtraData.h
index d354ee73380d7bfa70c862ed1689cc67169d267e..c581004ac75ac91d3e428b00718b8688443da93a 100644
--- a/obj/NiIntegerExtraData.h
+++ b/obj/NiIntegerExtraData.h
@@ -30,6 +30,10 @@ public:
 	virtual void FixLinks( const vector<NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
 	virtual list<NiObjectRef> GetRefs() const;
 	virtual const Type & GetType() const;
+
+	uint GetData() const;
+	void SetData( uint n );
+
 protected:
 	NI_INTEGER_EXTRA_DATA_MEMBERS
 };
diff --git a/obj/NiIntegersExtraData.cpp b/obj/NiIntegersExtraData.cpp
index 2c74ab04804ac283824ce4dc832fbee89bf71ce0..5b9cc50aa277706c5454c882935408dfbcb8c433 100644
--- a/obj/NiIntegersExtraData.cpp
+++ b/obj/NiIntegersExtraData.cpp
@@ -34,3 +34,11 @@ const Type & NiIntegersExtraData::GetType() const {
 	return TYPE;
 };
 
+vector<uint> NiIntegersExtraData::GetData() const {
+	return data;
+};
+	
+void NiIntegersExtraData::SetData( const vector<uint> & n ) {
+	numIntegers = uint( n.size() );
+	data = n;
+};
\ No newline at end of file
diff --git a/obj/NiIntegersExtraData.h b/obj/NiIntegersExtraData.h
index 22502a359fb20a02ae3cb6dec32c0ce27e8ab25a..13c679da4b1ffd1a7e873de653d08c6d3e6e4ca8 100644
--- a/obj/NiIntegersExtraData.h
+++ b/obj/NiIntegersExtraData.h
@@ -30,6 +30,10 @@ public:
 	virtual void FixLinks( const vector<NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
 	virtual list<NiObjectRef> GetRefs() const;
 	virtual const Type & GetType() const;
+
+	vector<uint> GetData() const;
+	void SetData( const vector<uint> & n );
+
 protected:
 	NI_INTEGERS_EXTRA_DATA_MEMBERS
 };
diff --git a/obj/NiKeyframeController.cpp b/obj/NiKeyframeController.cpp
index 1a22c4cf48b267e27ddd3aa7f34793f9ecf70fd6..026f17e46539d58204a0e864ab32708dd7092062 100644
--- a/obj/NiKeyframeController.cpp
+++ b/obj/NiKeyframeController.cpp
@@ -35,3 +35,10 @@ const Type & NiKeyframeController::GetType() const {
 	return TYPE;
 };
 
+Ref<NiKeyframeData> NiKeyframeController::GetData() const {
+	return data;
+}
+	
+void NiKeyframeController::SetData( const Ref<NiKeyframeData> & n ) {
+	data = n;
+}
\ No newline at end of file
diff --git a/obj/NiKeyframeController.h b/obj/NiKeyframeController.h
index 5645234959aaf7ecd8c05fa314000e4eaf72533b..a9aca36f24300170dd3f17e7bd8ef1c123828aea 100644
--- a/obj/NiKeyframeController.h
+++ b/obj/NiKeyframeController.h
@@ -35,6 +35,10 @@ public:
 	virtual void FixLinks( const vector<NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
 	virtual list<NiObjectRef> GetRefs() const;
 	virtual const Type & GetType() const;
+
+	Ref<NiKeyframeData> GetData() const;
+	void SetData( const Ref<NiKeyframeData> & n );
+
 protected:
 	NI_KEYFRAME_CONTROLLER_MEMBERS
 };
diff --git a/obj/NiLightColorController.cpp b/obj/NiLightColorController.cpp
index 9fedddac94153c150374afc2f2ea4b8e2f3cb83e..45f30bda1468a2091e32e4df580c1ab070e03d6a 100644
--- a/obj/NiLightColorController.cpp
+++ b/obj/NiLightColorController.cpp
@@ -36,3 +36,18 @@ const Type & NiLightColorController::GetType() const {
 	return TYPE;
 };
 
+Ref<NiPoint3Interpolator> NiLightColorController::GetInterpolator() const {
+	return interpolator;
+}
+
+void NiLightColorController::SetInterpolator( const Ref<NiPoint3Interpolator> & n ) {
+	interpolator = n;
+}
+
+Ref<NiPosData> NiLightColorController::GetData() const {
+	return data;
+}
+
+void NiLightColorController::SetData( const Ref<NiPosData> & n ) {
+	data = n;
+}
\ No newline at end of file
diff --git a/obj/NiLightColorController.h b/obj/NiLightColorController.h
index f2476d0579ab52678d8ae06799a245a397dca01d..4d9e864cb33bfc9ac127f63e2a08a9a423b8a1c7 100644
--- a/obj/NiLightColorController.h
+++ b/obj/NiLightColorController.h
@@ -35,6 +35,14 @@ public:
 	virtual void FixLinks( const vector<NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
 	virtual list<NiObjectRef> GetRefs() const;
 	virtual const Type & GetType() const;
+	//TODO: There is an item of unknown data in this class
+
+	Ref<NiPoint3Interpolator> GetInterpolator() const;
+	void SetInterpolator( const Ref<NiPoint3Interpolator> & n );
+
+	Ref<NiPosData> GetData() const;
+	void SetData( const Ref<NiPosData> & n );
+
 protected:
 	NI_LIGHT_COLOR_CONTROLLER_MEMBERS
 };
diff --git a/obj/NiParticleSystemController.h b/obj/NiParticleSystemController.h
index 9e185d0206a45c5d79e3b7dc90779d257c6a594b..c84f136ee2ac362b3f86581bd0df870a778808b4 100644
--- a/obj/NiParticleSystemController.h
+++ b/obj/NiParticleSystemController.h
@@ -38,6 +38,7 @@ public:
 	virtual void FixLinks( const vector<NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
 	virtual list<NiObjectRef> GetRefs() const;
 	virtual const Type & GetType() const;
+	//TODO:  This controller is not a priority and it has a lot of unknown data.
 protected:
 	NI_PARTICLE_SYSTEM_CONTROLLER_MEMBERS
 };
diff --git a/obj/NiPathController.cpp b/obj/NiPathController.cpp
index 80341c4743f3395f292f459486168cf2a4ef240f..5c6dcc00e7218d2768814400500d0559ac208fb3 100644
--- a/obj/NiPathController.cpp
+++ b/obj/NiPathController.cpp
@@ -36,3 +36,18 @@ const Type & NiPathController::GetType() const {
 	return TYPE;
 };
 
+Ref<NiFloatData> NiPathController::GetFloatData() const {
+	return floatData;
+}
+
+void NiPathController::SetFloatData( const Ref<NiFloatData> & n ) {
+	floatData = n;
+}
+
+Ref<NiPosData> NiPathController::GetPosData() const {
+	return posData;
+}
+
+void NiPathController::SetPosData( const Ref<NiPosData> & n ) {
+	posData = n;
+}
diff --git a/obj/NiPathController.h b/obj/NiPathController.h
index 467e6eec676752205c56e2d85317fc3d352f1f86..e15c76832222b9802f76fafe75bb132315a2bd50 100644
--- a/obj/NiPathController.h
+++ b/obj/NiPathController.h
@@ -35,6 +35,13 @@ public:
 	virtual void FixLinks( const vector<NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
 	virtual list<NiObjectRef> GetRefs() const;
 	virtual const Type & GetType() const;
+
+	//TODO:  This class has a lot of unknown data
+	Ref<NiFloatData> GetFloatData() const;
+	void SetFloatData( const Ref<NiFloatData> & n );
+
+	Ref<NiPosData> GetPosData() const;
+	void SetPosData( const Ref<NiPosData> & n );
 protected:
 	NI_PATH_CONTROLLER_MEMBERS
 };
diff --git a/obj/NiSingleInterpolatorController.cpp b/obj/NiSingleInterpolatorController.cpp
index 5010d257388dd01462c1f6256962ff331364099b..a9853ce12ccc7a7f1ece7850470357e7a9f8998c 100644
--- a/obj/NiSingleInterpolatorController.cpp
+++ b/obj/NiSingleInterpolatorController.cpp
@@ -35,3 +35,10 @@ const Type & NiSingleInterpolatorController::GetType() const {
 	return TYPE;
 };
 
+Ref<NiInterpolator> NiSingleInterpolatorController::GetInterpolator() const {
+	return interpolator;
+}
+
+void NiSingleInterpolatorController::SetInterpolator( const Ref<NiInterpolator> & n ) {
+	interpolator = n;
+}
\ No newline at end of file
diff --git a/obj/NiSingleInterpolatorController.h b/obj/NiSingleInterpolatorController.h
index 7b9a89f2d7858ed5a9c340d7375a012da1c8d31f..1dd07a80d88fc781cb66bfae6a94a34b148f7b89 100644
--- a/obj/NiSingleInterpolatorController.h
+++ b/obj/NiSingleInterpolatorController.h
@@ -35,6 +35,9 @@ public:
 	virtual void FixLinks( const vector<NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
 	virtual list<NiObjectRef> GetRefs() const;
 	virtual const Type & GetType() const;
+
+	Ref<NiInterpolator> GetInterpolator() const;
+	void SetInterpolator( const Ref<NiInterpolator> & n );
 protected:
 	NI_SINGLE_INTERPOLATOR_CONTROLLER_MEMBERS
 };
diff --git a/obj/NiStringExtraData.cpp b/obj/NiStringExtraData.cpp
index c060e7d02f25e0b78c028923abf5f704b5ac224a..f25175ecb8812ac898bd6b2e6cd957417221d3af 100644
--- a/obj/NiStringExtraData.cpp
+++ b/obj/NiStringExtraData.cpp
@@ -34,4 +34,11 @@ const Type & NiStringExtraData::GetType() const {
 	return TYPE;
 };
 
-uint NiStringExtraData::BytesRemaining() const { return uint(); }
+string NiStringExtraData::GetData() const {
+	return stringData;
+}
+
+void NiStringExtraData::SetData( const string & n ) {
+	stringData = n;
+	bytesRemaining = uint(stringData.size()) + 4;
+}
\ No newline at end of file
diff --git a/obj/NiStringExtraData.h b/obj/NiStringExtraData.h
index a9bedaeadc92ae23fa2476dad5c202abc3bc7af8..799496936ce86f21ebfc1de410cba9767fce2390 100644
--- a/obj/NiStringExtraData.h
+++ b/obj/NiStringExtraData.h
@@ -32,6 +32,10 @@ public:
 	virtual void FixLinks( const vector<NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
 	virtual list<NiObjectRef> GetRefs() const;
 	virtual const Type & GetType() const;
+
+	string GetData() const;
+	void SetData( const string & n );
+
 protected:
 	uint BytesRemaining() const;
 	NI_STRING_EXTRA_DATA_MEMBERS
diff --git a/obj/NiStringsExtraData.cpp b/obj/NiStringsExtraData.cpp
index 8fdad714d74982bfcdf6e0e4bc5534015b769dd2..428c98ce820c94e50820e52d817175b0430ac6be 100644
--- a/obj/NiStringsExtraData.cpp
+++ b/obj/NiStringsExtraData.cpp
@@ -34,3 +34,11 @@ const Type & NiStringsExtraData::GetType() const {
 	return TYPE;
 };
 
+vector<string> NiStringsExtraData::GetData() const {
+	return data;
+};
+	
+void NiStringsExtraData::SetData( const vector<string> & n ) {
+	numStrings = uint(n.size());
+	data = n;
+};
\ No newline at end of file
diff --git a/obj/NiStringsExtraData.h b/obj/NiStringsExtraData.h
index 97e98e51cecba58193ab9a95a5e2f09c7348552c..6d556ac182264a29f484c3faf889b98f2046ea2a 100644
--- a/obj/NiStringsExtraData.h
+++ b/obj/NiStringsExtraData.h
@@ -31,6 +31,10 @@ public:
 	virtual void FixLinks( const vector<NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
 	virtual list<NiObjectRef> GetRefs() const;
 	virtual const Type & GetType() const;
+
+	vector<string> GetData() const;
+	void SetData( const vector<string> & n );
+
 protected:
 	NI_STRINGS_EXTRA_DATA_MEMBERS
 };
diff --git a/obj/NiTextKeyExtraData.h b/obj/NiTextKeyExtraData.h
index d5e229fca50b876d2265ac9c50324e21b020c856..7700fbf68bb7514009c0c028828ae55582102624 100644
--- a/obj/NiTextKeyExtraData.h
+++ b/obj/NiTextKeyExtraData.h
@@ -44,6 +44,8 @@ public:
 	 */
 	void SetKeys( vector< Key<string> > const & keys );
 
+	//TODO:  There is an unknown member in this class
+
 protected:
 	NI_TEXT_KEY_EXTRA_DATA_MEMBERS
 };
diff --git a/obj/NiUVController.cpp b/obj/NiUVController.cpp
index fc695ec5ca06539ff453dde4f075f077e92709a9..4b03643cf103037d27aa2320540355fa40330884 100644
--- a/obj/NiUVController.cpp
+++ b/obj/NiUVController.cpp
@@ -35,3 +35,10 @@ const Type & NiUVController::GetType() const {
 	return TYPE;
 };
 
+Ref<NiUVData> NiUVController::GetData() const {
+	return data;
+}
+
+void NiUVController::SetData( const Ref<NiUVData> & n ) {
+	data = n;
+}
\ No newline at end of file
diff --git a/obj/NiUVController.h b/obj/NiUVController.h
index 39370212a4b24a8f3fb1b79f184ae7c7663f9d47..329f74f965f2634a15b819f7eebb33fc330145d4 100644
--- a/obj/NiUVController.h
+++ b/obj/NiUVController.h
@@ -34,6 +34,11 @@ public:
 	virtual void FixLinks( const vector<NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
 	virtual list<NiObjectRef> GetRefs() const;
 	virtual const Type & GetType() const;
+
+	//TODO:  This class has an unknown member
+	Ref<NiUVData> GetData() const;
+	void SetData( const Ref<NiUVData> & n );
+
 protected:
 	NI_U_V_CONTROLLER_MEMBERS
 };
diff --git a/obj/NiVectorExtraData.cpp b/obj/NiVectorExtraData.cpp
index 6169226c9f6b359ba4df3f05c51d7e131be41cd3..134301b9c4e7dbe407ba42064064c75f642ad4ba 100644
--- a/obj/NiVectorExtraData.cpp
+++ b/obj/NiVectorExtraData.cpp
@@ -34,3 +34,11 @@ const Type & NiVectorExtraData::GetType() const {
 	return TYPE;
 };
 
+Vector3 NiVectorExtraData::GetData() const {
+	return vectorData;
+};
+	
+void NiVectorExtraData::SetData( const Vector3 & n ) {
+	vectorData = n;
+};
+
diff --git a/obj/NiVectorExtraData.h b/obj/NiVectorExtraData.h
index e50e2398c9fde3ba8a868b0c74c7c4c5d9e9ee5e..8f3b007e9d41ae43e8f1ea3d2dceecd8442471de 100644
--- a/obj/NiVectorExtraData.h
+++ b/obj/NiVectorExtraData.h
@@ -30,6 +30,11 @@ public:
 	virtual void FixLinks( const vector<NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
 	virtual list<NiObjectRef> GetRefs() const;
 	virtual const Type & GetType() const;
+
+	Vector3 GetData() const;
+	void SetData( const Vector3 & n );
+
+	//TODO:  There is an unknown member in this class
 protected:
 	NI_VECTOR_EXTRA_DATA_MEMBERS
 };
diff --git a/obj/NiVertWeightsExtraData.cpp b/obj/NiVertWeightsExtraData.cpp
index 7544bd0e16c62e5ac6e1fb04114d6f4bbf296594..98558aab47d59e6e49cc43f5e2e7009a92b57a56 100644
--- a/obj/NiVertWeightsExtraData.cpp
+++ b/obj/NiVertWeightsExtraData.cpp
@@ -34,3 +34,12 @@ const Type & NiVertWeightsExtraData::GetType() const {
 	return TYPE;
 };
 
+vector<float> NiVertWeightsExtraData::GetData() const {
+	return weight;
+}
+	
+void NiVertWeightsExtraData::SetData( const vector<float> & n ) {
+	numVertices = uint(n.size());
+	numBytes = numVertices + 2;
+	weight = n;
+}
diff --git a/obj/NiVertWeightsExtraData.h b/obj/NiVertWeightsExtraData.h
index 6b9c8c33e8b64af6996c73cb41ab38569330593c..5f2375cf7e194e44724251220300524195b3977c 100644
--- a/obj/NiVertWeightsExtraData.h
+++ b/obj/NiVertWeightsExtraData.h
@@ -31,6 +31,10 @@ public:
 	virtual void FixLinks( const vector<NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
 	virtual list<NiObjectRef> GetRefs() const;
 	virtual const Type & GetType() const;
+
+	vector<float> GetData() const;
+	void SetData( const vector<float> & n );
+
 protected:
 	NI_VERT_WEIGHTS_EXTRA_DATA_MEMBERS
 };
diff --git a/obj/bhkBlendController.h b/obj/bhkBlendController.h
index bbd7319ae1e6b98bff4574fd297d630d916d2e88..92ce914644f4f6da4421528684d6364e6ddc3020 100644
--- a/obj/bhkBlendController.h
+++ b/obj/bhkBlendController.h
@@ -31,6 +31,8 @@ public:
 	virtual void FixLinks( const vector<NiObjectRef> & objects, list<uint> & link_stack, unsigned int version, unsigned int user_version );
 	virtual list<NiObjectRef> GetRefs() const;
 	virtual const Type & GetType() const;
+
+	//TODO:  This is not a priority but needs to be implemented eventually
 protected:
 	BHK_BLEND_CONTROLLER_MEMBERS
 };