Added has many through associations and model validations