updated for visual studio 2012