fix a few more tests, expose root notifier for internal use, refactor payload generation process