added @safe nothrow pure qualifiers to what was possible