added nothrow allocation functions