Clean and update build output more intelligently

Fixes #183.
lets handle that in a separate pull request then.  that logic (and logic like it) is all over