Possibly breaking change to address #22. Refactoring into DerivedModel.