Updated model relationships, adding 'throughs' and validations