Add more pure, nothrow