Refactor models to respect DRY