ground up rebuild to clean up
Merge branch 'rebuilt'