port to MSVC 2008