added associations and basic validations