even more @safe pure nothrow