Restructure before next commit.
Overhaul, More public-friendly