More Adhoc functions implemented

it's registered during __NetAdhocInit, the old code was registering it during an adhoc function which being used quite often, since there is no way to unregister it i moved it to __NetAdhocInit