added NOMINMAX before things that possibly include windows.h