The horror!  The final refactors!

Now to get the api squared away...