Replaced Batch and BatchResult with BatchableSource.
Finished implementing Json message encoders and added tests for all message encoders.
refactored and implemented hooks, simple logging, and performance counters.