changed to has_many through