Default functions

The CMessage commit is, I think, a serious maintainability issue.  The rest is just "I think it's best practice to only redefine functions when necessary" and to remove some extra clutter.