clean up, add associations and validations