Refactored derived objects somewhat.