WIP Major refactor.

Signed-off-by: Gordon Smith <gordon.smith@lexisnexis.com>