updated with upstream MonoGame