Refactor: Moving out json verification to its own class.
Refactor: Moving out some classes to their own files.
Refactor: Moving out some init code.
Adding more test to verify sent parts.
Refactor: Inlining tmps for added brevity.