add nogc nothrow