added polymorphic associaion, custom object, validations