participations ok, improve base_model design