Made compatible with MSVC++