Refactor: Namespace everything and split up source files so Client and Internal repositories can be compiled separately.