update models for has_many through, update tests