added associations, validation and some model specs