#1 - wip - big refactor to split things up a bit.
#1 - wip - adjust namespaces