refactor for domain model and active record.