Refactored derived objects somewhat.
Self-review