nit: please use the standard order for includes http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml#Names_and_Order_of_Includes