Major reorganization of code, might eventually make two repositories ...
Merge commit '9079cec6eafe2f140aa945f93eef50dc8838d678'