Added safe static initialization due to fact that on MSVC meyers singleton is not thread safe