diff --git a/change_log.txt b/change_log.txt
index 0916cc46a5bcd2fe972b728b91c27dcfba7e0744..1daf4715b8217520c71b858e66847ede5dd2c7f5 100644
--- a/change_log.txt
+++ b/change_log.txt
@@ -1,364 +1,312 @@
 ==Version 0.2==
 
-2005/10/13
-  * Made NiSkinData and the bone nodes it references aware of each other so they
-    can be properly destroyed.
-  * Added BlocksInMemory() function to verify that all blocks are now dying when
-    the root block dies.
-  * Made the bone influence flag automatic.
-  * Changed NiNode Print() function to asString() as it should have been and
-    moved it to the cpp file.
-  * Added a readout of a list of skin data blocks that are connected to each
-    NiNode for testing.
-  * Fixed other functions that were still Print() instead of asString()
-2005/10/14
-  * Finished up NiSkinData block.
-2005/10/15
-  * Automated NiSkinInstance Skeleton Root attribute and AController Target Node
-    attribute.  All back references should now be automatic.
-2005/10/16
-  * Fixed bug in Bounding Box attribute Write() function
-  * Added Write() Function for NiKeyFrameData, NiTextKeyExtraData, and
-    NiStringExtraData
-  * Added AExtraData class with a proper index attribute.  ExtraData blocks will
-    now be part of the tree as they should have been.
-  * Added IKeyframeData interface.
-  * Fixed a bug that was causing multiple copies of the same block to be written
-    by WriteNifTree()
-  * Fixed a bug that was causing the Skeleton Root in NiSkinInstance to be
-    calculated incorrectly.
-  * Added QueryKeyframeData() function.
-  * Finished support for NiTextKeyExtraData.
-  * Added Write() function for NiMoprhData
-  * Finished NiMorphData interface and functions.
-  * Added template directives for new key templates to pyniflib.i.
+ * Made NiSkinData and the bone nodes it references aware of each other so they
+   can be properly destroyed.
+ * Added BlocksInMemory() function to verify that all blocks are now dying when
+   the root block dies.
+ * Made the bone influence flag automatic.
+ * Changed NiNode Print() function to asString() as it should have been and
+   moved it to the cpp file.
+ * Added a readout of a list of skin data blocks that are connected to each
+   NiNode for testing.
+ * Fixed other functions that were still Print() instead of asString()
+ * Finished up NiSkinData block.
+ * Automated NiSkinInstance Skeleton Root attribute and AController Target Node
+   attribute.  All back references should now be automatic.
+ * Fixed bug in Bounding Box attribute Write() function
+ * Added Write() Function for NiKeyFrameData, NiTextKeyExtraData, and
+   NiStringExtraData
+ * Added AExtraData class with a proper index attribute.  ExtraData blocks will
+   now be part of the tree as they should have been.
+ * Added IKeyframeData interface.
+ * Fixed a bug that was causing multiple copies of the same block to be written
+   by WriteNifTree()
+ * Fixed a bug that was causing the Skeleton Root in NiSkinInstance to be
+   calculated incorrectly.
+ * Added QueryKeyframeData() function.
+ * Finished support for NiTextKeyExtraData.
+ * Added Write() function for NiMoprhData
+ * Finished NiMorphData interface and functions.
+ * Added template directives for new key templates to pyniflib.i.
 
 ==Version 0.2.1==
 
-2005/10/21
-  * Changed Float3, Matrix33, and Matrix44 from C arrays to structures that
-    mimic C arrays ensure accessibility from scripting languages.
-  * Made Get() functions for Matrix33, Matrix44, and Float3 return a value
-    instead of a reference.
-  * Fixed broken SWIG wrapper; still needs some more fixing...
-  * Added Makefile for building the python wrapper on linux/cygwin
-
-2005/10/22
-  * Some fixes to the SWIG wrapper file.
-
-2005/10/23
-  * Removed the idea of getting attributes by index, instead returning a vector
-    of attributes.
-  * Changed Set(float, float, float) to Set(Float3&) in IAttr and relevant
-    descendent classes.
-  * Added a Set(float, float, float) function to the Float3 struct to allow
-    setting all values in one call.
-  * Changed IBlock::GetAttrList() to GetAttrs() to be more consistent with other
-    functions.
-  * Made some changes to help Niflib work better with GCC.
-  * All the cpp files now seem to compile in GCC.
-  * Added list<blk_ref> template to SWIG file.
-
-2005/10/24
-  * Capitalized interface ID constants.
-  * Added support for [] operator to attr_ref in Python.
-  * Added Python support for [] to Matrix33, Matrix44, and Float3
-  * Added __setitem__ operators to blk_ref for Python.
-  * Un-commented attr_ref operator=(blk_ref) function.
-  * Changed MatrixRowN types to FloatN, merging MatrixRow3 and Float3.
-  * Added Matrix22 and Float2 types.
-  * Changed bump mapping members  in Texture struct to use Matrix22.
-  * Changed members in BoundingBox struct to use Vector3 and Matrix33 types.
+ * Changed Float3, Matrix33, and Matrix44 from C arrays to structures that
+   mimic C arrays ensure accessibility from scripting languages.
+ * Made Get() functions for Matrix33, Matrix44, and Float3 return a value
+   instead of a reference.
+ * Fixed broken SWIG wrapper; still needs some more fixing...
+ * Added Makefile for building the python wrapper on linux/cygwin
+ * Some fixes to the SWIG wrapper file.
+ * Removed the idea of getting attributes by index, instead returning a vector
+   of attributes.
+ * Changed Set(float, float, float) to Set(Float3&) in IAttr and relevant
+   descendent classes.
+ * Added a Set(float, float, float) function to the Float3 struct to allow
+   setting all values in one call.
+ * Changed IBlock::GetAttrList() to GetAttrs() to be more consistent with other
+   functions.
+ * Made some changes to help Niflib work better with GCC.
+ * All the cpp files now seem to compile in GCC.
+ * Added list<blk_ref> template to SWIG file.
+ * Capitalized interface ID constants.
+ * Added support for [] operator to attr_ref in Python.
+ * Added Python support for [] to Matrix33, Matrix44, and Float3
+ * Added __setitem__ operators to blk_ref for Python.
+ * Un-commented attr_ref operator=(blk_ref) function.
+ * Changed MatrixRowN types to FloatN, merging MatrixRow3 and Float3.
+ * Added Matrix22 and Float2 types.
+ * Changed bump mapping members  in Texture struct to use Matrix22.
+ * Changed members in BoundingBox struct to use Vector3 and Matrix33 types.
 
 ==Version 0.3==
 
-2005/10/25
-  * updated Makefile to compile the complete library
-  * fixed small error in NiStringExtraData asString() function
-
-2005/11/07
-  * Began work on multiple version support.
-  * Added NiParticleSystemController block and started on particlegroup
-    attribute.
-  * Changed the type name of some attributes to match DocSys database.
-  * Changed IndexAttr to LinkAttr for consistency.  Type name is now "link."
-  * Fixed inheritance of light blocks - didn't notice they didn't work since no
-    official file seems to use them.
-    
-2005/11/12
-  * Finished basic version support - still need to implement new block reading
-    scheme for version 5 and up.
-  * Updated all basic blocks with correctly versioned attributes from DocSys
-    database.
-  * Updated all data blocks except for NiSkinPartition and NiControllerSequence
-    to react correctly to known version differences up to 10.1.0.0.
-  * All blocks but the above now have both a Read and a Write function.
-  * Sped up CreateBlock and AddAttr functions.
-  
-2005/11/13
-  * Implemented the new header scheme for reading.
-  * Fixed up the new header scheme for reading.  All 10.0.1.0 files can now be
-    read as long as they don't contain unsupported block types.
-  * Updated the WriteNifTree function to write the correct version string and
-    hex number for the version requested.  Still doesn't support the new header
-    layout.
-    
-2005/11/14
-  * Made a few fixes as I updated the Maya importer to the changes.
-  
-2005/11/17
-  * NiSkinPartition and NiLODNode are now read fully and can be examined by
-    calling the asString function or written back out to a file unchanged.
-  * NiTriStripsData has been given a public interface, ITriStripsData, so that
-    the triangle strips it contains can be extracted.
-
-2005/11/22
-  * added autoconf/automake files + small changes to make things GCC compatible
-    again
-  * libtool fix in automake for compilation of shared libraries under Cygwin
-  * Fixed GCC compilation issues.
-  * Decided to start putting generated files on CVS.
-  * automake small improvement (now only builds the python wrapper independent
-    of additional library files)
-
-2005/11/25
-  * Removed py_wrap.cpp and added a simple windows compilation script for use
-    with the MS Visual C++ Toolkit.
-
-2005/11/26
-  * Fixed bug in Matrix33.Set(...)
-  * Matrix22.Set(...) bugfix
-  * Python wrapper fixes & improvements.
-
-2005/11/27
-  * Python wrapper exception support fix.
-  * More Python wrapper fixes and upgrades.
-  * Fixed AShapeData::SetVertexCount to allow for zero normals and/or colors.
-  * Removed some other recent changes.
-  * Suppressed all the warnings except one.
-
-2005/11/28
-  * Changed attr_nodeancestor to attr_controllertarget and fixed it so it
-    recognizes any controllable block, not just nodes.
-  * Made all struct types consistent with proper constructors.
-  * Cleaned up the attributes a bit, inheriting some from others so that code
-    isn't duplicated and special arguments are no longer needed to create any
-    type of attribute.
-  * "Name" is an attribute again; special functions to set it have been
-    removed.
-  * Synced supported blocks to the DocSys, adopting the new position of the
-    AParticleModifier block.
-  * SetTriangles() bugfix and added range checking on vertex & triangle counts.
-
-2005/11/29
-  * Fix writing NIF header + small fix in AShapeData
-  * Python SWIG support for strings in structure members
-
-2005/12/01
-  * Starting to write code for exporting x*.kf and x*.nif files. (unfinished)
-
-2005/12/04
-  * Fixed a bug in TargetControllerAttr.
-  * Added IsController function.
-  * Added ParentAttr for use in the AParticleModifier block.
-  * Minor fixes for the Python wrapper. Initial try to write XKf and XNif
-    files.
-  * Rewrote children of AKeyedData using NifStream function, and added public
-    interfaces for them.
-  * Added some const qualifiers.
-  * Fixed NiTextKeyExtraData read & write.
-
-2005/12/05
-  * Finished code that creates XNif & XKf files; fixed bug in
-    AttrControllerTarget.
-  * Fixed a bug I introduced yesterday.
-
-2005/12/08
-  * Killed a zombie.
-
-2005/12/09
-  * Added const correctness; fixed a few GCC compilation problems.
-  * Fixed a few bugs I introduced because I forgot to add a few consts. :oops:
-  * Added a function to calculate an X-aligned bone matrix from the bone vector
-    and the bone roll, which is convenient to have for the Blender exporter.
-  * Attempted to fix NiSkinData to be const friendly.
-
-2005/12/10
-  * Fixed a bug that was introduced in the reference bone reference tracking.
-
-2005/12/11
-  * Bone matrix calculation function (Blender helper function) fixed.
-
-2005/12/12
-  * Removed BoneToMatrix44 helper functions. (They will be implemented in
-    Python in the Blender exporter.)
-
-2005/12/14
-  * Fixed a little bug I introduced earlier. :oops:
-  * Corrected default state of node flags.
-  * Added SCons support for building niflib.
-
-2005/12/16
-  * Corrected skeleton root calculation.
-  * Fixed error that caused an invalid number to be written in the unknown 4
-    floats within NiSkinData.  Now simply write 4 zeros.
-
-2005/12/18
-  * Re-implemented NiMorphData with NifStream function, fixing a bug in its
-    Write function at the same time.
-  * Changed several of the attributes of NiPixelData to attributes in
-    preparation for creating an interface for it.
-  * Fixed a bug in AExtraData for version 10.0.1.0+
-
-2005/12/20
-  * Started adding Doxygen format documentation comments to niflib.h.
-  * Renamed Color structure to Color4.
-  * More documentation comments added.
-  * Renamed TextureSource to TexSource and Texture to TexDesc.
-  * Fixed overall transformation in NiSkinData.
-
-2005/12/21
-  * Added more documentation.
-  * Renamed INode functions dealing with bind position so that each function
-    clearly expresses the type of matrix its dealing with - local or world.
-  * Removed the GNU buildsystem; SCons supersedes it.
-
+ * updated Makefile to compile the complete library
+ * fixed small error in NiStringExtraData asString() function
+ * Began work on multiple version support.
+ * Added NiParticleSystemController block and started on particlegroup
+   attribute.
+ * Changed the type name of some attributes to match DocSys database.
+ * Changed IndexAttr to LinkAttr for consistency.  Type name is now "link."
+ * Fixed inheritance of light blocks - didn't notice they didn't work since no
+   official file seems to use them.
+ * Finished basic version support - still need to implement new block reading
+   scheme for version 5 and up.
+ * Updated all basic blocks with correctly versioned attributes from DocSys
+   database.
+ * Updated all data blocks except for NiSkinPartition and NiControllerSequence
+   to react correctly to known version differences up to 10.1.0.0.
+ * All blocks but the above now have both a Read and a Write function.
+ * Sped up CreateBlock and AddAttr functions.
+ * Implemented the new header scheme for reading.
+ * Fixed up the new header scheme for reading.  All 10.0.1.0 files can now be
+   read as long as they don't contain unsupported block types.
+ * Updated the WriteNifTree function to write the correct version string and
+   hex number for the version requested.  Still doesn't support the new header
+   layout.
+ * Made a few fixes as I updated the Maya importer to the changes.
+ * NiSkinPartition and NiLODNode are now read fully and can be examined by
+   calling the asString function or written back out to a file unchanged.
+ * NiTriStripsData has been given a public interface, ITriStripsData, so that
+   the triangle strips it contains can be extracted.
+ * added autoconf/automake files + small changes to make things GCC compatible
+   again
+ * libtool fix in automake for compilation of shared libraries under Cygwin
+ * Fixed GCC compilation issues.
+ * Decided to start putting generated files on CVS.
+ * automake small improvement (now only builds the python wrapper independent
+   of additional library files)
+ * Removed py_wrap.cpp and added a simple windows compilation script for use
+   with the MS Visual C++ Toolkit.
+ * Fixed bug in Matrix33.Set(...)
+ * Matrix22.Set(...) bugfix
+ * Python wrapper fixes & improvements.
+ * Python wrapper exception support fix.
+ * More Python wrapper fixes and upgrades.
+ * Fixed AShapeData::SetVertexCount to allow for zero normals and/or colors.
+ * Removed some other recent changes.
+ * Suppressed all the warnings except one.
+ * Changed attr_nodeancestor to attr_controllertarget and fixed it so it
+   recognizes any controllable block, not just nodes.
+ * Made all struct types consistent with proper constructors.
+ * Cleaned up the attributes a bit, inheriting some from others so that code
+   isn't duplicated and special arguments are no longer needed to create any
+   type of attribute.
+ * "Name" is an attribute again; special functions to set it have been
+   removed.
+ * Synced supported blocks to the DocSys, adopting the new position of the
+   AParticleModifier block.
+ * SetTriangles() bugfix and added range checking on vertex & triangle counts.
+ * Fix writing NIF header + small fix in AShapeData
+ * Python SWIG support for strings in structure members
+ * Starting to write code for exporting x*.kf and x*.nif files. (unfinished)
+ * Fixed a bug in TargetControllerAttr.
+ * Added IsController function.
+ * Added ParentAttr for use in the AParticleModifier block.
+ * Minor fixes for the Python wrapper. Initial try to write XKf and XNif
+   files.
+ * Rewrote children of AKeyedData using NifStream function, and added public
+   interfaces for them.
+ * Added some const qualifiers.
+ * Fixed NiTextKeyExtraData read & write.
+ * Finished code that creates XNif & XKf files; fixed bug in
+   AttrControllerTarget.
+ * Fixed a bug I introduced yesterday.
+ * Killed a zombie.
+ * Added const correctness; fixed a few GCC compilation problems.
+ * Fixed a few bugs I introduced because I forgot to add a few consts. :oops:
+ * Added a function to calculate an X-aligned bone matrix from the bone vector
+   and the bone roll, which is convenient to have for the Blender exporter.
+ * Attempted to fix NiSkinData to be const friendly.
+ * Fixed a bug that was introduced in the reference bone reference tracking.
+ * Bone matrix calculation function (Blender helper function) fixed.
+ * Removed BoneToMatrix44 helper functions. (They will be implemented in
+   Python in the Blender exporter.)
+ * Fixed a little bug I introduced earlier. :oops:
+ * Corrected default state of node flags.
+ * Added SCons support for building niflib.
+ * Corrected skeleton root calculation.
+ * Fixed error that caused an invalid number to be written in the unknown 4
+   floats within NiSkinData.  Now simply write 4 zeros.
+ * Re-implemented NiMorphData with NifStream function, fixing a bug in its
+   Write function at the same time.
+ * Changed several of the attributes of NiPixelData to attributes in
+   preparation for creating an interface for it.
+ * Fixed a bug in AExtraData for version 10.0.1.0+
+ * Started adding Doxygen format documentation comments to niflib.h.
+ * Renamed Color structure to Color4.
+ * More documentation comments added.
+ * Renamed TextureSource to TexSource and Texture to TexDesc.
+ * Fixed overall transformation in NiSkinData.
+ * Added more documentation.
+ * Renamed INode functions dealing with bind position so that each function
+   clearly expresses the type of matrix its dealing with - local or world.
+ * Removed the GNU buildsystem; SCons supersedes it.
+ 
 ==Version 0.4==
 
-2005/12/22
-  * Deleted redundant autoconf macro file.
-
-2005/12/23
-  * Zombie killed.
-
-2005/12/25
-  * Improved compiler flags for windows build.
-
-2006/01/03
-  * fixed key type in NiMorphData
-
-2006/01/03
-  * Started work on 10.x compatibility.
-  * Added GetMorphKeyType, and SetMorphKeyType to IMorphData interface.
-
-2006/01/13
-  * Supported new header formats for version 5.0.0.1 to version 20.0.0.4 in
-    WriteNifTree function.
-  * Updated texsource and texdesc attributes to the latest DocSys info.
-  * Finished updating all existing blocks to the latest DocSys info.
-  * Added NiBoolData and APSysData blocks.
-  * Fixed new attr_bool and attr_unk292bytes attributes so that they can be
-    used by blocks.
-
-2006/01/14
-  * added -fPIC to cppflags to resolve amd64 compilation issue under linux
-  * fixed GCC compilation issue
-  * removed linux library prefix for the python wrapper
-  * Made internal cross-reference system more general.
-  * Implemented NiControllerSequence block and interface.
-
-2006/01/15
-  * Implemented NiBoneLODController.  Problems with writing connected NiSkinData
-    blocks, however.
-  * Some internal changes.
-  * Fixed destructor of NiControllerSequence to remove itself as the parent of
-    blocks it points to if it is destroyed.
-  * Implemented NiLookAtInterpolator.
-  * Several fixes to blocks that didn't have arrays expanded in the DocSys.
-  * DocSys is now fully implemented, so all versions 4.x and 10.x files that
-    it supports are now supported.
-  * Fixed one warning in GCC.
-  * Implemented GetLinks() functions for NiBoneLODController and
-    NiControllerSequence blocks so that their internal links will be followed
-    when writing files.
-  * scons example program compilation (see comments in SConstruct)
-
-2006/01/16
-  * Merged NiKeyframeData and NiTransformData under AKeyframeData.
-  * Implemented most of the IPixelData interface.
-  * adding cygwin support
-
-2006/01/17
-  * Attempted to implement IPixelData and IPalette interfaces.  Yet to be
-    thoroughly tested.
-  * Debugged and tested IPixelData functions.
-
-2006/01/18
-  * Fixed a bug that was causing a Segmentation Fault when Nif files that
-    had NiSourceTexture blocks were read by code compiled with GCC.
-  * updated python wrapper interface
-  * niftexture workaround
-
-2006/01/20
-  * CPPFLAGS fix in compile examples.
-  * Removed two more memset calls just in case.
-  * fixed NiPixelData bugs
-  * fixed GCC warnings, fixed NIF footer
-  * Fixed a few more bugs in IPixelData.
+ * Deleted redundant autoconf macro file.
+ * Zombie killed.
+ * Improved compiler flags for windows build.
+ * fixed key type in NiMorphData
+ * Started work on 10.x compatibility.
+ * Added GetMorphKeyType, and SetMorphKeyType to IMorphData interface.
+ * Supported new header formats for version 5.0.0.1 to version 20.0.0.4 in
+   WriteNifTree function.
+ * Updated texsource and texdesc attributes to the latest DocSys info.
+ * Finished updating all existing blocks to the latest DocSys info.
+ * Added NiBoolData and APSysData blocks.
+ * Fixed new attr_bool and attr_unk292bytes attributes so that they can be
+   used by blocks.
+ * added -fPIC to cppflags to resolve amd64 compilation issue under linux
+ * fixed GCC compilation issue
+ * removed linux library prefix for the python wrapper
+ * Made internal cross-reference system more general.
+ * Implemented NiControllerSequence block and interface.
+ * Implemented NiBoneLODController.  Problems with writing connected NiSkinData
+   blocks, however.
+ * Some internal changes.
+ * Fixed destructor of NiControllerSequence to remove itself as the parent of
+   blocks it points to if it is destroyed.
+ * Implemented NiLookAtInterpolator.
+ * Several fixes to blocks that didn't have arrays expanded in the DocSys.
+ * DocSys is now fully implemented, so all versions 4.x and 10.x files that
+   it supports are now supported.
+ * Fixed one warning in GCC.
+ * Implemented GetLinks() functions for NiBoneLODController and
+   NiControllerSequence blocks so that their internal links will be followed
+   when writing files.
+ * scons example program compilation (see comments in SConstruct)
+ * Merged NiKeyframeData and NiTransformData under AKeyframeData.
+ * Implemented most of the IPixelData interface.
+ * adding cygwin support
+ * Attempted to implement IPixelData and IPalette interfaces.  Yet to be
+   thoroughly tested.
+ * Debugged and tested IPixelData functions.
+ * Fixed a bug that was causing a Segmentation Fault when Nif files that
+   had NiSourceTexture blocks were read by code compiled with GCC.
+ * updated python wrapper interface
+ * niftexture workaround
+ * CPPFLAGS fix in compile examples.
+ * Removed two more memset calls just in case.
+ * fixed NiPixelData bugs
+ * fixed GCC warnings, fixed NIF footer
+ * Fixed a few more bugs in IPixelData.
 
 ==Version 0.5==
-  
-2006/06/25
-  * Niflib can now operate on most or all files from the following games:
-    Oblivion, Civilization IV, Zoo Tycoon 2, Dark Ages of Camelot,
-    and Morrowind
-  * Cloning support for both single NIF classes and entire NIF trees.
-  * Major API redesign featuring:
-    - Type-aware smart pointers instead of a single generic blk_ref.
-    - Direct access to functions of all classes instead of interfaces.
-    - Ability to test whether one class is derived from another and do dynamic
-      and static casting between compatible types.
-    - No more attributes, values are accessed directly with functions in the
-      classes that hold them instead.
-    - Math structures now feature operations such as matrix inverse, as well
-      as operators such as multiplying matrices and vertices.
-    - Much faster operation overall due to hard-coded read and write functions
-      generated from the XML and no sting look-ups when accessing attributes.
-    - New skin API which makes skin morphed vertices availiable and makes
-      moving the mesh to the bind position optional.
-    - All symbols are now enclosed in the Niflib namespace
-    - Most old interfaces transitioned directly to new equivalents to reduce
-      code re-writing when upgrading from previous versions.
-      
+
+ * Niflib can now operate on most or all files from the following games:
+   Oblivion, Civilization IV, Zoo Tycoon 2, Dark Ages of Camelot,
+   and Morrowind
+ * Cloning support for both single NIF classes and entire NIF trees.
+ * Major API redesign featuring:
+   - Type-aware smart pointers instead of a single generic blk_ref.
+   - Direct access to functions of all classes instead of interfaces.
+   - Ability to test whether one class is derived from another and do dynamic
+     and static casting between compatible types.
+   - No more attributes, values are accessed directly with functions in the
+     classes that hold them instead.
+   - Math structures now feature operations such as matrix inverse, as well
+     as operators such as multiplying matrices and vertices.
+   - Much faster operation overall due to hard-coded read and write functions
+     generated from the XML and no sting look-ups when accessing attributes.
+   - New skin API which makes skin morphed vertices availiable and makes
+     moving the mesh to the bind position optional.
+   - All symbols are now enclosed in the Niflib namespace
+   - Most old interfaces transitioned directly to new equivalents to reduce
+     code re-writing when upgrading from previous versions.
+     
 ==Version 0.5.4==
 
-2005/07/15
-  * Added a != operator to Vector3.
-  * Initialized TexCoord values to 0.0f.
-  * Added Visibility flag functions to NiAVObject.cpp
-  * Fixed NiTexturingProperty::SetTexture to set the internal hasXTexture
-    variables correctly.
-  * Fix DAoC bug with kob_m_head01.nif
-  * Cycle type is now set correctly on controllers created or modified by
-    MergeNifTrees function.
-  * Changed default for new controllers to 12; Active/Clamped.  Should get
-    cycle type from NiControllerSequence.
-  * Add a default value for the new controller so that its active.
-    1.  Update niflib with bspline interpolation abilities
-    2.  Change mergeniftrees to default phase to 0.0f instead of 1.0f as its
-        a better default value.
-  * Determined that there are references to NiBSplineData and
-    NiBSplineBasisData in all NiBSplineInterpolator derived classes.
-    Consolidated the various references from the derived classes to the
-    NiBSplineInterpolator class in the XML and in Niflib.
-  * We can't have functions on compounds as all files for them are generated.  Removed CalcNumTriangles so Niflib programs will link.
-  * Applied latest XML changes.
-  * Split some things that were previously part of NIF_IO.h into their own
-    files to make SWIG wrapping work better.
-  * Made the MergeNifTree function set the start time, stop time, and
-    frequency of the controller it attaches an interpolator to.
-  * Made the MergeNifTree function create a controller of the right type and
-    attach it to the specified node if one does not already exist.
-  * Fixed an include statement to be relative.
-  * Add extra targets getter/setter for multitargeter controller.  Probably
-    need to fix GetRefs() at some point get return weak pointer references as
-    well as strong ones.
-  * Fix Math so that it decomposes rotations back to stored rotation and not
-    the inverse.  Fix Scale so that it returns the correct value rather than
-    x+y + (z/3).
-  * Add helper methods for useful flags for importing data in avobject and
-    controller sequence.
-  * Suppressed most SWIG warnings.
-  * Tried to implement MergeNifTrees for KF files with a NiControllerSequence
-    root.  Untested.
-  * Minor change to Python wrapper file.
\ No newline at end of file
+ * Added a != operator to Vector3.
+ * Initialized TexCoord values to 0.0f.
+ * Added Visibility flag functions to NiAVObject.cpp
+ * Fixed NiTexturingProperty::SetTexture to set the internal hasXTexture
+   variables correctly.
+ * Fix DAoC bug with kob_m_head01.nif
+ * Cycle type is now set correctly on controllers created or modified by
+   MergeNifTrees function.
+ * Changed default for new controllers to 12; Active/Clamped.  Should get
+   cycle type from NiControllerSequence.
+ * Add a default value for the new controller so that its active.
+   1.  Update niflib with bspline interpolation abilities
+   2.  Change mergeniftrees to default phase to 0.0f instead of 1.0f as its
+       a better default value.
+ * Determined that there are references to NiBSplineData and
+   NiBSplineBasisData in all NiBSplineInterpolator derived classes.
+   Consolidated the various references from the derived classes to the
+   NiBSplineInterpolator class in the XML and in Niflib.
+ * We can't have functions on compounds as all files for them are generated.  Removed CalcNumTriangles so Niflib programs will link.
+ * Applied latest XML changes.
+ * Split some things that were previously part of NIF_IO.h into their own
+   files to make SWIG wrapping work better.
+ * Made the MergeNifTree function set the start time, stop time, and
+   frequency of the controller it attaches an interpolator to.
+ * Made the MergeNifTree function create a controller of the right type and
+   attach it to the specified node if one does not already exist.
+ * Fixed an include statement to be relative.
+ * Add extra targets getter/setter for multitargeter controller.  Probably
+   need to fix GetRefs() at some point get return weak pointer references as
+   well as strong ones.
+ * Fix Math so that it decomposes rotations back to stored rotation and not
+   the inverse.  Fix Scale so that it returns the correct value rather than
+   x+y + (z/3).
+ * Add helper methods for useful flags for importing data in avobject and
+   controller sequence.
+ * Suppressed most SWIG warnings.
+ * Tried to implement MergeNifTrees for KF files with a NiControllerSequence
+   root.  Untested.
+ * Minor change to Python wrapper file.
+ 
+==Version 0.5.6==
+
+ * Added code to ensure that bones have their flag set properly, even if they
+   are not so in the original NIF file.
+ * Added SendNifTreeToBindPos function to set a whole file to the bind
+   position.
+ * NiTriStripsData::GetTriangles no longer returns triangles that have
+   matching vertices and, thus, no surface area.
+ * Added a SetBoneWeights function to NiTriBasedGeom which automatically
+   calculates the correct bone center and radius.
+ * The NiSkinData::SetBoneWeights function now requires the radius and center
+   as arguments.
+ * Removed lingering cout statements except those within debug defines.
+ * NiNode flags now default to 8 for "Not a skin influence."
+ * The code I added to make NiTriBasedGeom select the correct skeleton root
+   was wrong and has been re-written and tested.  It now seems to select the
+   same skeleton root as real NIF files.
+ * The NiTriBasedGeomData::SetUVSetCount function now sets the hasUVs bool
+   value correctly.
+ * Fixed some skin related bugs in ComplexSh::Split.
+ * Created a new ComplexShape class which can currently be used to
+   automatically split the sort of complicated mesh that contains
+   per-point-per-face attributes into NiTriShape classes.  Should support
+   skinning as well, but has not been tested.
+ * Added TexCoord == operator.
+ * Changed type of Triangle members to unsigned short.
+ * Color4 now defaults to all zeros.
+ * NiAVObject::AddProperty now takes a const argument.
+ * Fixed exception in NiTexturingProperty to throw a runtime_error instead of
+   a string.
+ * NiTriBasedGeom::BindSkin should now automatically finds the skeleton root
+   by itself.  The skeleton_root argument has been removed.